【C++】 —— 笔试刷题day_4

刷题day_4

继续加油!!!

一、Fibonacci数列

题目链接:Fibonacci数列

题目解析

在这里插入图片描述

题目要求,输入一个数N,我们可以对N进行+1/-1操作;题目让我们输出对N进行至少多少步可以变成Fibonacci数。

这里题目上说了我们对N的操作是+1或者-1,那我们就可以理解成求离N最近的Fibonacci数。

算法思路

我们需要寻找离N最近的Fibonacci

这里定义三个变量abc用来求Fibonacci数;在求的过程中,让N处于bc之间即可

最后返回N-bc-N的最小值即可。

代码实现

#include<iostream>
using namespace std;
int main()
{int a=0,b=1;int c=a+b;int n;cin>>n;while(n>c){a = b;b = c;c = a+b;}cout<<min(n-b,c-n)<<endl;return 0;
}

二、单词搜索

题目链接:单词搜索

题目描述

在这里插入图片描述

这里时一道经典的搜索题

题目给定一个二维字符数组board,给定一个单词word

让我们在这个字符数组中查找单词word(单词由相邻单元格的字母组成)并且同一个单元格的字符不能重复使用。

如果存在就返回true,如果不存在就返回false

算法思路

这一个经典的查找题目,在第一次做的时候可以说毫无思路;这里就直接说解法了。

首先,我们在二维字符数组中查找到单词word的第一个字符;

然后从这个位置开始进行深度优先遍历,来查找字符存在。

这里对于dfs深度优先遍历,来看一下如何实现

首先,遍历结束的条件(递归结束):当我们的pos遍历到word单词的结尾时,递归就结束了。

其次,我们要先修改当前位置的标记,修改成true;意思是已经查找过

然后,依次遍历当前位置的上、下、左、右四个位置,继续进行深度优先遍历,如果遍历查找到word单词就返回true

最后,执行完for循环(查找结束其上、下、左、右四个位置没有返回true,就表示没有查找到),我们需要将当前位置标记修改回来,再返回false

代码实现

Ok,有了思路,直接开始写代码

class Solution {
public:int m,n; //表示二维字符数组的长和宽bool vis[101][101]; //用来标记每个位置是否被使用int dx[4] = {0,0,1,-1}; //上、下、左、右位置的x坐标变化int dy[4] = {1,-1,0,0}; //上、下、左、右位置的y坐标变化bool exist(vector<string>& board, string word) {m = board.size();n = board[0].size();for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(board[i][j] == word[0]){if(dfs(board,i,j,word,0))return true;}}}//如果执行完for循环还没有返回,就说明没有找到//返回 falsereturn false;}bool dfs(vector<string>& board, int i,int j,string& word, int pos){if(pos == word.size() -1){return true;}vis[i][j] = true;//修改当前位置标记//依次遍历其上下左右四个位置for(int k=0;k<4;k++){int a = i+dx[k];int b = j+dy[k];//如果这个位置没有越界,当前位置没有用过;当前位置与要查找的字符相同if(a>=0 && a<m && b>=0 && b<n && vis[a][b] == false && board[a][b] == word[pos+1]){//深度优先遍历这个位置if(dfs(board,a,b,word,pos+1)){return true;}}}vis[i][j] = false;return false;}
};

三、杨辉三角

题目链接:杨辉三角

题目解析

在这里插入图片描述

对于题目,杨辉三角再熟悉不过了;这里需要注意的是

  • 输出时需要注意,每个数输出域宽为5

算法思路

杨辉三角,相信都早已熟悉了,这里提供两个做法

1. 使用vector来存储杨辉三角的数据

  • 定义vector<vector<int>> vp,对vp的第i行开辟i+1个空间,并且都初始化为1(方便进行数据操作)
  • 然后从第二行(下标为2),第一个(下标为1)位置开始填充数据。
  • 填充完成之后进行输出(注意输出使用printf%5d来保证每个数据宽为5

2. 定义一个dp表

  • 定义一个dp[31][31]的表,表中存储的是杨辉三角的数据;将表中所以数据初始化为0
  • dp[1][1]初始化成1,然后进行填充数据
  • 这里dp[31][31]确保了我们在进行操作时不会越界。

代码实现

对于第一种做法

#include<iostream>
#include<vector>using namespace std;int main()
{int n;cin>>n;vector<vector<int>> vp(n);for(int i=0;i<n;i++){vp[i].resize(i+1,1);}for(int i=2;i<n;i++){for(int j=1;j<i;j++){vp[i][j] = vp[i-1][j] + vp[i-1][j-1];}}for(int i=0;i<n;i++){for(int j =0;j<=i;j++){printf("%5d",vp[i][j]);}cout<<endl;}return 0;
}

第二种,定义一个dp

#include <iostream>
using namespace std;int dp[31][31];
int main() {int n;cin>>n;dp[1][1] = 1;for(int i=2;i<=n;i++){for(int j = 1;j<=i;j++){dp[i][j] = dp[i-1][j] + dp[i-1][j-1];}}for(int i=1;i<=n;i++){for(int j = 1;j<=i;j++){printf("%5d",dp[i][j]);}cout<<endl;}return 0;
}dp[i][j] = dp[i-1][j] + dp[i-1][j-1];}}for(int i=1;i<=n;i++){for(int j = 1;j<=i;j++){printf("%5d",dp[i][j]);}cout<<endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32894.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“Ubuntu禁止root用户通过SSH直接登录”问题的解决

目录 1 前言 2 问题的解决 2.1 修改sshd_config文件 2.2 重启 SSH 服务 1 前言 最近在做毕设的时候&#xff0c;由于使用普通用户&#xff0c;在MobaXterm的图形界面上&#xff0c;无法正常查看/root文件夹内容&#xff0c;如下图所示&#xff1a; 于是我就想直接想用oot…

MySql数据库等级考试学习分享3(Day5)

题目:机器周期的同步标准是( )。 选项: A. CPU执行指令所占用的时间 B. CPU访问存储器一次所需要的时间 C. CPU分析指令所需要的时间 D. CPU访问寄存器一次所需要的时间 知识点总结(0基础必看) 1. 计算机时序的基本单位 单位定义关系时钟周期(Clock Cycle)CPU主频的倒…

Unity 封装一个依赖于MonoBehaviour的计时器(下) 链式调用

[Unity] 封装一个依赖于MonoBehaviour的计时器(上)-CSDN博客 目录 1.加入等待间隔时间"永远执行方法 2.修改为支持链式调用 实现链式调用 管理"链式"调度顺序 3.测试 即时方法​编辑 "永久"方法 链式调用 ​4.总结 1.加入等待间隔时间&qu…

文件解析漏洞靶场集锦详解

一、IIS解析漏洞 环境安装&#xff1a;windows2003iis6 1.目录解析 .asp文件夹中的任意文件都会被当做asp文件去执行 1.在iis6的网站根目录新建⼀个名为1.asp的文件 2. 在1.asp中新建⼀个jpg文件。内容为 <%now()%>asp代码 3.在外部浏览器中访问iis⽹站中的1.jpg 发现…

零售业务订单处理自动化:吉客云对接金蝶云星空

销售单对接销售出库_类型1零售业务_合并&#xff1a;吉客云奇门数据集成到金蝶云星空 在现代零售业务中&#xff0c;数据的高效流转和准确处理是企业运营的关键。本文将分享一个实际案例&#xff0c;展示如何通过轻易云数据集成平台&#xff0c;将吉客云奇门的数据无缝对接到金…

python-leetcode-子数组最大平均数 I

643. 子数组最大平均数 I - 力扣&#xff08;LeetCode&#xff09; 可以使用滑动窗口&#xff08;Sliding Window&#xff09;的方法来解决这个问题。具体步骤如下&#xff1a; 先计算数组 nums 中前 k 个元素的和 sum_k&#xff0c;作为初始窗口的和。然后滑动窗口&#xff0…

「 机器人 」扑翼飞行器通过总气动力控制四自由度运动方法

一、前言 在扑翼飞行中,总气动力(Total Aerodynamic Force)是指扑翼在运动过程中受到的所有空气动力作用的合力。它是由以下两种主要力的合成结果: 1. 升力(Lift, ):垂直于空气流方向的力,用于支持飞行器(或生物)的重量。 2. 阻力(Drag, ):平行于空气流方向的力,…

【C语言系列】字符函数和字符串函数

字符函数和字符串函数 一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2strlen函数模拟实现 四、strcpy的使用和模拟实现4.1strcpy函数4.2strcpy函数的模拟实现 五、strcat的使用和模拟实现5.1strcat函数5.2strcat函数的模拟实现 六、strcmp的使用…

飞鸟与鱼不同路

看&#xff0c;好美的太阳。 嘿嘿&#xff0c;今天我提出辞去综合教研室主任一职&#xff0c;不想在这个管理上废时间啦~ 把时间用来考试.........用来做自己的事情。 哈哈哈哈~

AI本地部署

文档加载&#xff08;Document Loading&#xff09;&#xff1a;从多种不同来源加载文档。LangChain提供了100多种不同的文档加载器&#xff0c;包括PDF在内的非结构化的数据、SQL在内的结构化的数据&#xff0c;以及Python、Java之类的代码等​ •文本分割&#xff08;Splitti…

计算机视觉算法实战——驾驶员分心检测(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 领域简介&#xff1a;驾驶员分心检测的意义与挑战 驾驶员分心检测是智能驾驶安全领域的重要研究方向。据统计&#xff0c;全球每…

2025因果机器学习好中高区idea汇总

机器学习变天了&#xff01;近来因果机器学习大热&#xff0c;这便意味着机器学习已经从“预测”向“理解”的范式转变。同时&#xff0c;这也是我们发论文、找创新的好时机。 因果机器学习可谓是&#xff0c;提高模型决策科学性和可靠性的“仙丹”&#xff01;其核心就在于&a…

Linux笔记---文件系统硬件部分

1. 文件系统 文件系统是操作系统用于明确存储设备&#xff08;常见的是磁盘&#xff0c;也有基于NAND Flash的固态硬盘&#xff09;或分区上的文件的方法和数据结构&#xff0c;即在存储设备上组织文件的方法。 1.1 基本组成 索引节点&#xff08;inode&#xff09;&#xff…

AutoSar架构-----XCP模块与协议介绍

1、XCP 模块定义 XCP 一般要求如下图&#xff1a; XCP 导入的类型需要如下表这些头文件&#xff1a; 2、ETAS 工具配置 2.1、XcpGeneral 配置 3、XCP 协议 ASAM-MCD-1MC&#xff1a;ECU 和标定测量系统接口 ASAM-MCD-2MC&#xff1a;即 A2L 文件&#xff0c;是控制器内部信息…

江科大51单片机笔记【10】DS1302时钟可调时钟(下)

写在前言 此为博主自学江科大51单片机&#xff08;B站&#xff09;的笔记&#xff0c;方便后续重温知识 在后面的章节中&#xff0c;为了防止篇幅过长和易于查找&#xff0c;我把一个小节分成两部分来发&#xff0c;上章节主要是关于本节课的硬件介绍、电路图、原理图等理论知识…

字节流 InputStream/OutputStream

一、java的I/O java的I/O(输入/输出)流是用于处理数据输入和输出的抽象类。 java的I/O流主要分为两大类&#xff0c;字节流跟字符流。 字节流&#xff1a;用于处理二进制数据&#xff0c;包括InputStream和OutputStream两个主要类及其子类。 字符流&#xff1a;用于处理字符…

使用位运算如何找到数组中只出现一次的数?

题目链接&#xff1a;137. 只出现一次的数字 II - 力扣&#xff08;LeetCode&#xff09; 算法解析 位运算是用于二进制的运算符号。而对于多次出现的数字&#xff0c;其二进制都是一模一样的&#xff0c;这里是3次重复的出现是数字。由此我们可以想到&#xff0c;如果我们由低…

最节省服务器,手搓电子证书查询系统

用户预算150元&#xff0c;想要一个最简单证书查询系统。前台能查询证书、后台管理员能登录能修改密码&#xff0c;证书能够手动输入修改删除、批量导入导出删除数据、查询搜索。能够兼容苹果、安卓、PC三端浏览器&#xff0c;最后帮忙部署到云服务器上。 用户预算不多&#xf…

.net 6程序在IIS中部署后点击IIS设置报错“执行此操作时出错”

.net 6写的程序&#xff0c;需要在Windows服务器的IIS中部署&#xff0c;由于是刚装的系统&#xff0c;先安装.net 6运行时&#xff0c;装了才发现没有IIS&#xff0c;于是又通过“添加角色和功能”添加与IIS相关的功能。安装完毕后&#xff0c;在IIS中添加网站&#xff0c;并将…

探针泄露(WEB)

##解题思路 题目提示是探针泄露&#xff0c;未及时删除的探针可能造成严重的数据泄露 探针的文件常见命名为tz.php&#xff0c;访问它 对于php相关参数&#xff0c;我们是可以点击的&#xff0c;点击phpinfo访问 跳转后搜索flag&#xff0c;得到flag