按照数据结构分类
(三) 遍历vector的问题
1、 顺时针打印矩阵/螺旋矩阵
- 按层打印,向中间收缩,for循环的条件会变,所以要注意判断条件非固定值。
2、 数组中出现次数超过一半的数字
- 将vector的值读进哈希表
unordered_map<int,int> counts; counts[nums[i]]++;
3、 输入整数数组 arr ,找出其中最小的 k 个数
- vector的排序函数sort(arr.begin(), arr.end());,从小到大排
4、 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)
- 滑动窗口(双指针)——何时移动i,何时移动j,跳出循环的条件(while)
5、 从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子
- 排序sort(arr.begin(), arr.end());+遍历for。
- 判定条件:无重复且max-min<5(数学思维)
6、 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个
- 使用内置排序函数或者是自己实现快速排序