![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode每日一题
~无相~
这个作者很懒,什么都没留下…
展开
-
leetcode14. 最长公共前缀
思路 做法:从左往右扫描判断一下是不是都相等就行了,水水水水水 官方题解原创 2020-06-15 17:10:35 · 108 阅读 · 0 评论 -
leetcode1300. 转变数组后最接近目标值的数组和
思路 思想:枚举加前缀和 做法:枚举val(0<val<max(a[i])),如果和与target差值结果小于当前的差值,就更新最小值 优化:先进行排序,再求出前缀和,避免每次算重复的一段区间的和,对于值小于val的区间,直接加上前缀和,大于的区间和就是区间长度*val即可 官方题解 ...原创 2020-06-14 18:53:54 · 234 阅读 · 0 评论 -
leetcode70. 爬楼梯
思路 入门的动态规划,f[i]为到达第i层的解,那么f[i]=f[i-1]+f[i-2],其实只要记录下三个数f[i-2],f[i-1],f[i]就可以了。 代码 class Solution { public: int climbStairs(int n) { int p = 0, q = 0, r = 1; for (int i = 1; i <= n; ++i) { p = q; q = r;原创 2020-06-13 21:01:14 · 97 阅读 · 0 评论 -
leetcode15. 三数之和
思路 做法:排序+双指针 先排序,枚举第一层,也就是第一个数字,之后再枚举一下第二个和第三个数,第二个数字从第一个数字后面一个数字开始枚举,第三个数字从末尾开始枚举,如果两数之和小于需要的大小,第二个数字就往右移一个,反之第三个数字往左边移一格,中间跳掉那些相等的数字即可。 代码 class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { vector&l原创 2020-06-12 20:01:42 · 150 阅读 · 0 评论 -
leetcode739. 每日温度
思路 题意:求出数组中任意一个数在他后面比他大的第一个数的索引是多少 做法:单调栈,我的习惯是从后往前,如果遇到栈是空的,就直接将索引存入栈中,如果不是空的,就一直出栈,直到栈顶索引对应的元素大于当前比较元素或者栈为空为止,之后判断一下,假设当前比较元素索引为 i,如果栈是空的,就证明没有数字比当前比较元素大,vector当前位置赋值为0,如果不是空的,就把当前vector位置赋值为 栈顶-i 即可。别忘了每次最后要把当前索引i存入栈中。 代码 class Solution { public:原创 2020-06-11 21:10:13 · 98 阅读 · 0 评论 -
leetcode9. 回文数
思路 题目:要求判断一个字符串是不是回文串 做法:这里只要判断一个字符串就行了,所以最快最简单的方法就是把原来字符串反转一下,然后和原来的字符串比较,如果一一对应匹配的话就是回文串了,如果不是判断一个字符串,而是判断最长回文串就要用哈希或者动态规划来做 官方题解 ...原创 2020-06-10 21:55:05 · 71 阅读 · 0 评论 -
leetcode990. 等式方程的可满足性
思路 做法:用并查集来存储关系和判断结果,首先对信息的顺序进行一下改变,等于的信息先输入,这对于整个判断是没有关系的,而先把等于的信息存入和判断对于后面的不等于更好判断 ①:等于的判断(a==b):先判断一下两个变量是否都已经被放入一个集合中了,如果都已经放入一个集合中了,在判断一下这两个变量是否在同一个集合,如果不在,直接输出false,如果在,就判断下一个信息,如果其中有一个变量没有被放入一个集合,就放入另一个变量的集合中 ②:不等于的判断(a!=b):直接判断两个变量a和b是否在同一个集合中即可原创 2020-06-08 15:37:26 · 75 阅读 · 0 评论