![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode刷题
iimmy_o
这个作者很懒,什么都没留下…
展开
-
Leetcode一道非常新颖的题
T136 只出现一次的数字这道题本身并不难,想通过也很简单,我的做法是先将数组排序再比较。还有用集合存储数的做法等等,但这些方法的时间复杂度都为,并不能满足题目中对复杂度的要求。如何用的时间复杂度实现呢?那我们首先需要引入异或这种算法。异或的性质1,任何数异或0都为其本身:x ^ 0 = x2,任何数与其本身异或为0:x^ x= 03,异或运算满足交换律:x ^ y ^ x = x ^ x ^ y = (x ^ x) ^ y = 0 ^ y = y通过异或的性质,我们不难发现..原创 2021-10-08 22:56:29 · 49 阅读 · 0 评论 -
Leetcode初识动规
原题T53 最大子序和对于这道题目,因为从来没有接触过动规的做法,所以我苦思冥想,最后只能写出了一个的暴力解法,然后在最后一组数据成功超时。以下正解动规应该是最优解法,同时贪心和分治也能够解决题目,但是目前只对动规有了较深的理解,至于贪心和分治日后再补。为什么要用动态规划?原题中提示了时间复杂度应该为O(n),而暴力解法无法达到这个要求。同时,题目中“最大”,“连续”也引导用动规的思想来解决问题。怎么用动规?[-2,1,-3,4,-1,2,1,-5,4]对于这个数组,我们依次原创 2021-10-08 15:56:20 · 176 阅读 · 0 评论 -
Leetcode刷题-双指针
T26 删除有序数组中的重复项这是我真正开始刷题的第一步,也是第一篇博客,还是第一次遇到用双指针解决问题。此后将用博客来进行刷题记录,并且记录我的心得体会与学习经验。 我的代码class Solution {public: int removeDuplicates(vector<int>& nums) { sort(nums.begin(), nums.end()); vector<int>...原创 2021-10-01 17:11:47 · 132 阅读 · 0 评论