![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
水木LinV
热爱学习的我
展开
-
Leetcode 485 最大连续1的个数
题目要求思路思路一之前做过类似的题目,Leetcode 53 最大子序和,Leetcode 485 最大连续1的个数,Leetcode 121 买卖股票的最佳时机,Leetcode 122 买卖股票的最佳时机Ⅱ。思路就是动态规划,可以创建curMax数组来保存当前位置最大连续1的个数,但是这个题没有必要,只用一个变量就可以实现。代码class Solution {p...原创 2019-10-12 19:59:09 · 222 阅读 · 0 评论 -
Leetcode 189 旋转数组
题目要求:思路: 第一眼看到这个题,想到的思路和约瑟夫环类似,就是一个数组的整数取余问题。但是在实际的测试运行中发现,自己有几个方面还是疏忽了。如果没有要求空间复杂度为O(1)的话,这个和约瑟夫环的解题思路几乎没什么区别。但就是这个要求,让自己犯了几个错误,做题的时候一定要学会变通。设数组的长度为length,向右移动k(默认k<length)个位置思路一从第一个元...原创 2019-10-07 11:34:52 · 128 阅读 · 0 评论 -
Leetcode 217 存在重复元素
题目要求思路 想法一:使用set\map这种哈希结构来处理,优点是代码量少,缺点是空间复杂度、时间复杂度很高。 想法二:使用排序,之后遍历整个数组即可,最早没想到排序,其实如果是去除重复元素的话,排序是比较好用的方法。代码代码一: 使用哈希结构来解决。class Solution {public: bool containsDuplicate(vecto...原创 2019-10-07 12:47:19 · 149 阅读 · 0 评论 -
Leetcode 219 存在重复元素Ⅱ
题目要求思路思路一: 双重循环,第一重循环遍历nums内的元素,从第一个元素遍历到最后一个元素。第二重循环遍历i+1元素到i+k元素,如果存在元素与i元素的值相同,就返回true,如果遍历完整个集合都没有,就返回false。时间复杂度为O(N²)。代码:class Solution {public: bool containsNearbyDuplicate(v...原创 2019-10-08 11:03:19 · 151 阅读 · 0 评论 -
Leetcode 268 缺失数字
题目要求想法想法一: 使用高斯求和公式求出0->n中所有数字之和,然后用所有数字之和减去序列中的数,最后得到的便是序列中缺少的那个数。最开始的想法是想用哈希表,但考虑到用哈希表的话,空间复杂度O(N),时间复杂度O(N),想去降低空间复杂度O(N),便想到了使用高斯求和的方法。代码:class Solution {public: int missingN...原创 2019-10-09 11:45:22 · 135 阅读 · 0 评论 -
Leetcode 283 移动零
题目描述思路思路: 使用双指针,第一个指针从头遍历数组中的所有元素,第二个指针记录数组中不为0的元素,最后在第二个指针后面添加0即可。代码:class Solution {public: void moveZeroes(vector<int>& nums) { int j=0; for(int i=0;i&l...原创 2019-10-09 23:04:17 · 83 阅读 · 0 评论 -
Leetcode 448 找到所有数组中消失的数字
题目要求思路 这道题真的跟之前的217 存在重复元素、219 存在重复元素Ⅱ、268 缺失数字好像,但是哈希表、数学公式、位运算的方法都不能用,一是因为限定了空间复杂度,二是因为存在不止一个重复元素。思路一循环遍历1->n,然后利用vector中的find函数在nums判断是否存在,如果不存在就添加到lackNum中。代码class Solution {...原创 2019-10-10 10:23:14 · 166 阅读 · 0 评论