
LeetCode
文章平均质量分 66
LeetCode题解
CC_且听风吟
行百里者半九十
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
找到数组中消失的两个数字
一道位运算题目,和其他几道题目有相似的地方,都是异或的使用题目链接这里提供两种好理解的思路思路1:求和容易求得1 + … + (N+2),因此可以得到a + b = x容易求得12 + 22 + … + (N+2)2 ,因此可以得到a2 + b2 = y因此可以求得 ab = (x2 - y) / 2已经知道 a + b 和 ab ,就可以求得 a - b已知 a + b 和 a - b ,可以最终求得 a 与 b思路2:使用异或:a ^ a = 0已知的所有数字的异或结果为原创 2021-02-28 23:59:37 · 1919 阅读 · 0 评论 -
LeetCode-22 括号生成
LeetCode22dp做法:包含n个括号组的字符串结果,取决于n-1个括号组的字符串结果假设n-1个括号组的字符串形式有k种则有:n个括号组的字符串 = “(” + p个括号组结果 + “)” + q个括号组结果其中p + q = n-1将p个括号组结果从 0 -> n-1遍历一遍,就会得到所有可能的n个括号组的字符串组合n=0:返回空n=1:返回"()"class Solution {public: vector<string> generateParen原创 2020-10-13 00:04:19 · 263 阅读 · 0 评论 -
LeetCode-10 正则表达式匹配
LeetCode10看似是一个字符串问题,实则是动态规划问题越长的字符串匹配结果依赖于较短的字符串匹配结果首先有两层for循环,外层是遍历源字符串s,内层是遍历正则串p,这样可以将字符串由短至长对正则表达式进行匹配设dp[i][j]dp[i][j]dp[i][j]表示s串到iii位置和p串到jjj位置的匹配结果,有0和1两种对于p正则串,有两个特殊符号...和∗*∗如果遇到了∗*∗∗*∗前面的字符可以为0个或者多个,判断这个x∗x*x∗组合的p[j−1]p[j-1]p[j−1]是不是等于字原创 2020-10-10 15:15:00 · 639 阅读 · 0 评论 -
LeetCode-403 青蛙过河
LeetCode8dp[i][j]dp[i][j]dp[i][j] 表示从iii点可以走jjj步长dis=stones[i]−stones[j]dis = stones[i] - stones[j]dis=stones[i]−stones[j] (dis是jjj个石头到iii个石头的距离)如果dp[j][dis]dp[j][dis]dp[j][dis]为true,表示jjj点可以走disdisdis长度,就是从jjj点可以走到iii点既然可以走disdisdis长度,继续再从iii点原创 2020-09-29 22:46:00 · 419 阅读 · 0 评论 -
LeetCode-8 字符串转换整数(atoi)
LeetCode8暴力做法:判断字符串是否合法用k表示当前下标找到第一个非空字符,如果是正负号,修改flag为1或者-1,如果不是数字或者符号,直接返回0k++移动到符号的下一位while循环,使用long类型的temp来存储中间值,如果超过了INT_MAX,结束while,否则k++temp*flag是最终结果,判断是否越界输出class Solution {public: int myAtoi(string str) { int k =原创 2020-09-19 20:38:51 · 210 阅读 · 0 评论 -
LeetCode-404 左叶子之和
LeetCode404求解所有子叶之和很容易,这个题目需要求左子叶之和在递归遍历的过程中加一个标记sym来表示是否是左子叶即可class Solution {public: int sumOfLeftLeaves(TreeNode* root) { if(root == NULL) return 0; return preOrder(root, 0, false); } int preOrder(TreeNod原创 2020-09-19 19:43:48 · 242 阅读 · 0 评论 -
LeetCode-5 最长回文子串
LeetCode5做法主要有三种:暴力搜索中心扩散法马拉车Manacher暴力搜索和中心扩散法O(n^2)Manacher是O(n),但是不容易理解https://segmentfault.com/a/1190000008484167这里使用Manacher:class Solution {public: string longestPalindrome(string s) { if(s.length()==0) return "";原创 2020-09-19 19:39:09 · 140 阅读 · 0 评论 -
LeetCode-69 x的平方根
LeetCode69实现int sqrt(int x) 函数主要使用牛顿迭代法求平方根递推公式如下:xn+1=12(xn+cxn)x_{n+1} = \frac{1}{2}(x_n + \frac{c}{x_n})xn+1=21(xn+xnc)递推到一定精度err返回代码:class Solution { public int mySqrt(int x) { ...原创 2020-05-02 14:54:23 · 1324 阅读 · 0 评论 -
LeetCode-54 螺旋矩阵
LeetCode-54我这是朴素做法特殊情况中间只有一个元素了只有一行了只有一列了class Solution { public List<Integer> spiralOrder(int[][] m) { List<Integer> list = new ArrayList<>(); if(m==nu...原创 2020-04-11 14:40:41 · 220 阅读 · 0 评论