写不来Algo
写不来Algo
全部文章
分类
归档
标签
去牛客网
登录
/
注册
写不来Algo的博客
全部文章
(共13篇)
题解 | 求最小公倍数
这其实是一道数学题,两个数a,b的最小公倍数等于a*b/gcd(a,b),gcd表示两者的最大公约数.所以这道题我们就转为求两个数的最大公约数了。我们可以采用辗转相除法来解决该题:对两个正整数来说,让较小除以两数的模,chong这其实是一道数学题,两个数a,b的最小公倍数等于a*b/gcd(a,b)...
2025-03-25
0
58
题解 | 数组中的最长连续子序列
首先,题目只要求找出最长连续的子串,并没有要求是连续的子串。所以我们可以先对数组进行排序,在寻找最长连续的子串即可。寻找最长连续子串我们可以采取双指针算法来解决:1、我们定义i,j指针,如果j-i == 1,则说明连续,此时j就可以持续向后走,同时让j与j-1位置的元素也进行比较。2、但是数组中可能...
2025-03-25
0
74
题解 | 字符串中找出连续最长的数字串
找出字符串中的连续最长数字子串。我们可以采取双指针的方式:1.定义i指针,用来遍历数组,当i位置是数字字符时,我们就需要判断后面是否也为数字字符,所以定义另一个指针j,用j来获取从i开始的数字字符的长度。2.当j停止时,此时我们就需要判断这次从i开始,长度为j-i的子串是否长于上一次?如果是,则更新...
2025-03-23
0
43
题解 | 大数乘法
解法1:模拟 我们可以模拟两个整数相乘的过程。两个整数相乘的过程其实就是一个数与另一个数的每一位分别相乘,最后将每一位乘的结果加起来即可。例如:12*23 = 276,我们可以先用12*3 + 12*20结果依旧是276.所以我们可以将这个模拟过程实现出来。 1.依次取出一个数的每一位,...
2025-03-15
1
116
题解 | 链表相加(二)
给了我们两个链表,由高位到低位的存储了两个整数。我们需要返回一个新链表,内容是两个链表对于数字的和。解法:我们只需要模拟竖式加法的过程即可。但是我们无法直接访问链表的尾部,所以我们先对两个链表进行逆置,然后对应位置相加,最后再将结果逆置回来即可。下面是具体步骤:1.逆置链表:逆置链表可以使用双指针/...
2025-03-15
1
53
题解 | 大数加法
我们只需要模拟竖式加法的过程即可,同时逆序遍历两个字符串,记录相同位置上的和,然后将该数加到返回字符串中,接着计算下一个位置。注意在计算过程中要保留进位。且字符串遍历完后还要判断进位是否为0,否则还得加上进位。接着我们返回逆置后的字符串即可。 class Solution { public: ...
2025-03-15
1
34
题解 | 杨辉三角
杨辉三角每一行的长度等于行数+1,我们可以创建一个n*n的数组,来存储杨辉三角。但是没有必要,因为c++有vector,可以动态申请空间。我们可以定义一个vector<vector<int>>来存储。这样就不会有内存浪费的问题。1.开辟空间:先开辟一个n行的二维数组,然后再利...
2025-03-12
0
47
题解 | Fibonacci数列
解法:我们可以一边求斐波那契数组一边找离n最近的两个斐波那契数。求斐波那契数我们可以借助三个变量来求,a、b、c。初始化 a = 0, b = 0, c = 1。接着每次将b给a,c给b,c在等于a+b即可。我们要求离n最近的两个斐波那契数,可以用c来比较,如果n>c的话,就继续求,如果n&l...
2025-03-12
0
57
题解|简单写词
有多个单词,以空格分割。返回每个单词的首字母并大写。唯一的问题就在于如果读取多个以空格为分隔符的单词。如果直接写一个cin肯定是不行的,因为cin以空格作为分隔符,会导致只能获取第一个单词。解法1:利用getline,getline可以获取一行内容,它默认以换行作为分隔符,所以可以读取所有单词。接下...
2025-03-12
0
33
题解 | 主持人调度(一)
一.题目解析题目还是很好理解的。目前只有一个主持人,但是有多个活动需要主持,如果这些活动时间互不牵扯,则主持人可以主持所有活动,返回true;反之活动时间交叉,则主持人无法主持所有活动,返回false二.算法原理第一次想到的就是,只要第二个活动的开始时间,大于等于前一场活动的结束时间就行了。但是有的...
2025-01-15
0
62
首页
上一页
1
2
下一页
末页