![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题笔记(数据结构入门)
霍斗
这个作者很懒,什么都没留下…
展开
-
刷题笔记(知识点:排序,双指针)
不多废话,直接上代码;class Solution {public: vector<vector<int>> merge(vector<vector<int>>& in) { if(!in.size()) return {}; sort(in.begin(),in.end()); vector<vector<int>> ans; fo..原创 2022-02-26 13:14:34 · 162 阅读 · 0 评论 -
刷题笔记(知识点:单指针,双指针...)
这个题目来一个排序就可以解决,但是让我感兴趣的是如何遍历一边就弄完,先附上我写的代码:class Solution {public: void sortColors(vector<int>& n) { int point =0;//基本的单指针o(n),交换0和1,遍历两次; for(int i=0;i<n.size();i++) { if(n[i]==0) swap(n[point],...原创 2022-02-25 22:04:31 · 223 阅读 · 0 评论 -
刷题笔记(知识点:双指针)
这个题目第一眼看上去就会想到用三重循环,但是用完之后会发现超时,所以需要去优化。身为小白的我肯定是想不出来怎么优化的,于是我为了不浪费时间,果断去看了官方题解。双指针:当需要枚举数组中的两个元素的时候,如果发现这两个元素当其中一个是递增的时候,另一个随之递减,那么就可以将原本o(n^2)的时间复杂度降为o(n)。当左指针向右移动一个位置的时候,右指针会向左移动若干个位置。在这个题目里面,因为有三个数,所以还需要在外面套一程循环,并且因为不能重复的原因,也就是这三个指针移动的时候,..原创 2022-02-24 16:09:45 · 648 阅读 · 0 评论 -
刷题笔记(知识点:投票算法)
这个题可以用哈希表计算,也是只需要将整个数组遍历一遍,然后记录每个数字出现的次数,当某个数出现超过n/2的时候,这个数就是答案;在官方题解中,我看到了一种算法,是叫做投票算法;不妨假设整个数组的众数记做a,则最初的数组中a的数量大于其余所有数。当采用count计数的时候有两种情况:1)假设candidate等于a,则当count从1变为0的过程,此区间内a的数量等于其余数的数量,因此以count=0为分界线,数组右端部分的众数仍然为a2)假设candidate不等于a,则当count..原创 2022-02-24 15:00:38 · 110 阅读 · 0 评论 -
刷题笔记(知识点:位运算)
位运算(做题笔记)原创 2022-02-24 13:08:57 · 151 阅读 · 0 评论