![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每日一题
文章平均质量分 57
Reset。
这个作者很懒,什么都没留下…
展开
-
【笔试题】 走方格的方案数 C++
题目本题链接:走方格的方案数请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路, 即:只能往右和往下走,不能往左和往上走。输入描述:每组样例输入两个正整数n和m,用空格隔开。(1≤n,m≤8)输出描述:每组样例输出一行结果示例:解题思路:本题可以采用递归的思想,通过从右下角走到左上角来解决问题。当从右下角,到达左上角:就是从1位置,到达左上角的路径数+2位置到达左上角的路径数。f([m][n])原创 2021-06-18 20:34:20 · 737 阅读 · 6 评论 -
【笔试题】 另类加法 C++
题目本题链接:另类加法给定两个int A和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。测试样例:解题思路:本题可以通过位运算实现,两个数求和其实就是求和后当前的数据(不算进位)+两个数求和的进位。例如:1 + 2:1的二进制位:000000012的二进制位:000000101 + 2求和后当前数据(不算进位):000000111 + 2求和的进位:00000000,则没有进位两者相加后,得到:00000011就是31 + 3:1的二进制位:00000001原创 2021-06-18 19:49:09 · 250 阅读 · 0 评论 -
【笔试题】求最小公倍数 C++(两种方法)
题目本题链接:求最小公倍数正整数A和正整数B 的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入描述:输出描述:示例1:解题思路一: 暴力破解从两个数中较大的数开始,逐个进行判断,能够被两个数整除,则第一个就是最小公倍数。代码:#include<iostream>using namespace std;int main(){ int a, b; while(cin >> a >>原创 2021-05-05 21:44:25 · 23126 阅读 · 8 评论 -
【笔试题】两种排序方法 C++
题目本题链接:两种排序方法考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如:“car” < “carriage” < “cats” < "doggies < “koala”2.根据字符串的长度排序。例如:“car” < “cats” < “koala” < “doggies” < “carriage”考拉想知道自己的这些字符串排列顺序是否满足这两种排序方法,考拉要忙着吃原创 2021-05-05 20:45:04 · 152 阅读 · 0 评论 -
【笔试题】合法括号序列判断 C++
题目本题链接:合法括号序列判断给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。测试样例:测试样例:测试样例:解题思路:本题可以通过栈来实现。如果遇到非括号字符直接返回false。遍历字符串,遇到左括号,则压栈;遇到右括号则查看栈中是否有对应的左括号,如果栈为空,则表示匹配不完整,多出了右括号,如果栈顶元素是左括号,则出栈与右括号匹配成为一个完整的括号;遍历完之后,如果栈不为空,则匹配不完整,多出了左括号,栈为空,则表示括号匹配成功。原创 2021-05-05 16:36:15 · 476 阅读 · 0 评论 -
【笔试题】Fibonacci数列 C++
题目本题链接:Fibonacci数列Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。输入描原创 2021-05-05 15:48:37 · 132 阅读 · 0 评论 -
【笔试题】把字符串转换成整数 C++
题目本题链接:把字符串转换成整数将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输出描述:示例1:示例2:代码思路:如果是空字符串,直接返回0;遍历字符,如果字符中有非数字字符,也直接返回0。我们都先用正数处理,如果第一个字符是’-’,最后返回-1*sum。若第一个字符是是符号字符(’-’、’+’),我们把这个位置置为字符’0’,这样不会影响最终结果,并且遍历的时候不会因为这个位置不是数字字符而退出。转换为整原创 2021-05-05 14:40:12 · 391 阅读 · 1 评论 -
【笔试题】不要二 C++
题目本题链接:不要二二货小易有一个W*H的网格盒子,网格的行编号为0—H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述:输出描述:示例1:解题思路:网格盒子其实就是二维数组。这个题的关键点就是:在二维数组中每个坐标去放原创 2021-05-05 13:45:04 · 153 阅读 · 2 评论 -
【笔试题】连续最大和 C++
题目本题链接:连续最大和一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3。输入描述:输出描述:示例1:解题思路:本题是一个经典的动规问题。通过{6,-3,-2,7,-15,1,2,2}举例,dp[i]以数组下标为i的数作为结尾的子序列最大和,例如,dp[2]就是以-2结尾的,子序列最大和的值为1(6 + -3 + -2),dp[3]就是以7结尾的,子序列最大和就是8(6 + -3 + -2 + 7)。当我们求dp[i]的原创 2021-05-01 23:46:32 · 314 阅读 · 0 评论 -
【笔试题】统计回文 C++
题目本题链接:统计回文“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。例如:A = “aba”,B = “b”。这里有4种把B插入A的办法:在A的第一个字母之前: “baba” 不原创 2021-05-01 17:15:01 · 260 阅读 · 1 评论 -
【笔试题】进制转换 C++
题目本题链接:进制转换给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数输入描述:输出描述:示例1:解题思路:原理:N进制数,每个进制位的值分别是X0*N^0, X1*N^1, X2*N^2.....,X0,X1,X2就是这些进制位的值,就是就是进行取模余数就是当前低进制的位的值是多少,通过除掉进制数,进入下一个进制位的计算。我们通过示例来演示:10进制的7转化为2进制。7 % 2 = 1; 7 / 2 = 3; 步骤1️⃣3 % 2 = 1;3 / 2原创 2021-04-28 17:28:35 · 345 阅读 · 1 评论 -
【笔试题】 计算糖果 C++
题目:本题链接:计算糖果A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。输入描述:输出描述:示例1:解题思路:本题本质是一个表达式求解的问题。A - B = a; 步骤1️⃣B - C原创 2021-04-28 15:37:41 · 188 阅读 · 0 评论 -
【笔试题】数组中出现次数超过一半的数字 C++(多种方法)
题目:本题链接:数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。示例1:解题思路一(时间复杂度高): 求取排序后的中间数先对数组进行排序,如果符合条件的数存在,则一定是数组中间的那个数;但如果数组中本身就没有符合条件的数,中间的数就不是我们要找的数。先找出排序后中间的数,然后遍历整个数组,记录这个中间数原创 2021-04-25 18:21:51 · 1636 阅读 · 2 评论 -
【笔试题】字符串中找出连续最长的数字串 C++
题目本题链接:字符串中找出连续最长的数字串读入一个字符串str,输出字符串str中的连续最长的数字串输入描述:输出描述:示例1:解题思路:遍历字符串,使用cur记录连续的数字串,如果遇到不是数字字符,则表示一个连续的数字串结束了,则将数字串和之前的数字串比较,如果更长,则更新更长的数字串到ret字符串。图解:有3个字符串,str字符串保存输入的数据;cur字符串用来保存当前遍历的数字字符;ret字符串用来保存连续最长的数字串。代码:#include<iostream&原创 2021-04-25 16:08:24 · 305 阅读 · 0 评论 -
【笔试题】倒置字符串 C++
题目:本题链接:倒置字符串将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I输入描述:输出描述:示例1:解题思路:先将整个字符串逆置过来:.gnijieb ekil I遍历字符串,找出每个单词,对单词逆置:beijing. like I。这里通过算法库中的reverse逆置,所以这里使用迭代器遍历string图解:代码:#include<iostream>#include<algor原创 2021-04-25 10:56:40 · 256 阅读 · 0 评论 -
【笔试题】排序子序列 C++
题目:本题链接:排序子序列牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列.如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2.输入描述:输出描述:示例1:解题思路:先来了解一下非递增、非递减。非递增就是arr[i + 1] <= arr[i]原创 2021-04-24 20:38:01 · 383 阅读 · 1 评论 -
【笔试题】删除公共字符 C++
题目:本题链接:删除公共字符输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”输入描述:输出描述:示例1:解题思路:我们通过哈希的思想来解这道题。先把要删除的字符串,通过ASCII码值一一映射到一个数组中,并把映射到所在位置的元素加1。遍历第一个字符串,判断当前字符是否在数组中,不要使用删除,删除效率太低,因为每一次删除都伴随着字符移动。可以考虑将不原创 2021-04-23 00:01:49 · 369 阅读 · 0 评论 -
【笔试题】组队竞赛 C++
题目:本题链接:组队竞赛牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。例如:一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和最大。如样例所示:如果牛牛把6原创 2021-04-22 22:46:26 · 515 阅读 · 0 评论