Algorithms Array(一) —— 题目
将题目分类,总结常用的解题思路
参考图书
- 《算法(第 4 版)》
- 《编程之美》
- 《剑指 Offer(纪念版)》
题目表格
| 题目 | 位置 | 解题思路 | 要点 | 
|---|---|---|---|
| 插入排序 | |||
| 希尔排序 | |||
| 快速排序 | |||
| 并归排序 | |||
| 二分查找 | |||
| 数组中只出现一次的数字 | 《剑指 Offer》P211 | 异或 + 分组 | |
| Missing Number | LeetCode 268 | 异或 | |
| 数组中重复的数字 | 《剑指 Offer》P261 | 1. 排序 2. 遍历 + 哈希表 3. 推理 + 重排数组 | |
| Find All Numbers Disappeared in an Array | LeetCode 448 | 1. 推理 + 重排数组 2. “染色” | |
| 数字在排序数组中出现的次数 | 《剑指 Offer》P204 | 1. 遍历 2. 二分查找 | |
| 数组中出现次数超过一半的数字 | 《剑指 Offer》P163 | 1. 排序 2. 基于 Partition 函数 3. 所求数字比其他所有数字出现次数之和还要多 | 是否修改输入的数组 | 
| 数组中出现次数超过一半的数字 | 《编程之美》P129 | 1. 排序 2.所求数字比其他所有数字出现次数之和还要多 | |
| 寻找数组中的最大值和最小值 | 《编程之美》P165 | 1. 遍历 2. 分组 3. 分治 | |
| 快速寻找满足条件的两个数 | 《编程之美》P176 | 1. 穷举 2. 排序 + 二分查找 3. 排序 + 遍历 | |
| 最小的 K 个数 | 《剑指 Offer》P167 | 1. 排序 2. 基于 Partition 函数 3. 数据容器 + 最大堆 | |
| 最大的 K 个数 | 《编程之美》P139 | 1. 排序 2. 基于快速排序 3+ TODO | |
| 构建乘积数组 | 《剑指 Offer》P263 | 画图 | |
| 子数组的最大乘积 | 《编程之美》P180 | 1. 枚举 2. 逻辑推理 | |
| 子数组的最大和 | 《编程之美》P183 | 1. 枚举 2. 动态规划 | |
| 连续子数组之和的最大值 | 《剑指 Offer》P171 | 1. 枚举 2. 分析数组的规律 3. 动态规划 | |
| 连续子数组之和的最大值(二维) | 《编程之美》P189 | TODO | |
| 数组中最长递增子序列 | 《编程之美》P194 | 1. 枚举 2. 动态规划 | |
| 数组循环移位 | 《编程之美》P199 | 分析题意 | |
| 数组分割 | 《编程之美》P202 | 1. 排序 + 分组 2. 动态规划 | |
| 二维数组中的查找 | 《剑指 Offer》P38 | 1. 遍历 2. 分析简单例子,寻找普遍规律;分组、剔除; | |
| 旋转数组的最小数字 | 《剑指 Offer》P66 | 1. 二分查找 2. 双指针找分界点 | |
| 调整数组顺序使得奇数位于偶数前面 | 《剑指 Offer》P102 | 1. 遍历 2. 双指针交换奇偶数 3. 抽象 “分组逻辑判断” | |
| 把数组排成最小的数 | 《剑指 Offer》P177 | 抽象 sort 函数的 compare 函数 | |
| 数组中的逆序对 | 《剑指 Offer》P189 | 1. 遍历 2. 分组 + 并归排序 | 
以上。