罅隙·
罅隙·
全部文章
分类
题解(7)
归档
标签
去牛客网
登录
/
注册
罅隙·的博客
全部文章
(共11篇)
题解 | #字符串计数#
思路: 把字符串理解成26进制数字,那么就将问题转换成了数字的相减。例如 aa ~ bb 之间有多少个数字,就可以转换为 (b-a)^26 + (b - a) - 1。为什么要 -1 呢?因为相减的过程求是是还会将bb纳入,而题目要之间的字符串 对于同位的问题,直接相减即可。但是对于不同...
2023-08-31
2
413
题解 | #蘑菇阵#
简单的动态规划问题:确定dp数组的含义:dp[i][j] 表示到达[i, j] 位置的概率初始化:对于第一行和第一列要做特别的初始化处理。因为在边界只有一种选择状态转移方程:确定递推方向:从上到下,从左往右 #include <iostream> #include <vector&...
2023-08-30
1
488
题解 | #返回小于 N 的质数个数# 质数筛选的三种优化
一、原式版本 bool is_prime(int n) { for(int i = 2; i < n; i++) { if(n % i == 0) return false; } return true; } int m...
2022-07-10
2
442
题解 | O(1)时间复杂度。O(1)空间复杂度
#include <iostream> using namespace std; int Getmonthday(int year, int month) { stat...
2022-07-09
1
323
题解 | #链表的回文结构#C语言详解(对一道会三道)
一、解题思想 我的解题思想很朴素: 首先找到中间结点 将中间结点后半部分倒置 分别从头结点和尾结点向中间遍历,检测在达到中间时刻之间val的值是否都相等 二、过程分解 为什么说对一道会三道呢?因为找到中间结点是一道题目,倒置又是一道题目,做完整道题目又是一道题目,所以我们可以将这道题目利...
2022-03-19
15
940
题解 | #链表分割#C语言思路详解
一、思路呈现 这道题目在原链表上进行操作将会异常复杂繁琐,所以我们的操作是创建两个新的链表:greater 和 less。 greater后面跟大于x的结点,less后面跟小于x的结点。我们只需让less的尾结点接上greater的头结点即可。这样既实现了分割又保证原数据的顺序不被改变。 二...
2022-03-19
3
626
题解 | #寻找峰值# 二分法思路详解C语言
思路 为什么想到二分查找? 因为二分查找的本质是二段性,二分查找的过程本质是对可行区间的压缩。只要满足二段性的问题都可以用二分查找解决。在这里二段性的体现是峰值的左边单调增,右边单调减。你可能会反驳给我们的数值不只有一个峰值,但是只要我们控制好条件,一定可以把范围压缩到只有一个峰值的情况,来看看...
2022-02-04
47
4571
题解 | #寻找奇数# 位运算简单题
一、异或运算性质 a ^ a = 0 0 ^ a = a x ^ x ^ x ^ y = x ^ y 总结:利用异或运算可以算出出现奇数次的数字 二、代码呈现 int main() { int n = 0; int ans = 0; scanf("%d",&n...
2022-02-04
5
460
题解 | #单词倒排#
解题思路: 整体思想是双指针法,因此定义一对快慢指针p1,p2. 首先寻找一个单词的末尾,因此当s[p1]不是字母时p1就要--,循环终止时只要p1将指向一个单词的末尾(还有单词的话),此时将用p2记录下这个单词的结尾。 继续寻找单词的开头,因此当s[p1]为字母的时候就让p1--,最终p1+1指...
2022-01-26
21
990
题解 | #不用加减乘除做加法#
解题思路 ^ 异或运算符可以看成是不进位的加法, 因此我们可以有以下思路,不断将num1与num2进行不进位加法,但将进位的值赋值num2,此后继续进行不进位加法,直到进位值为0。 int Add(int num1, int num2) { while(num2) { ...
2022-01-24
1
399
首页
上一页
1
2
下一页
末页