其他

33 阅读3分钟
标题思路
1. 两数之和哈希表
49. 字母异位词分组字符串哈希
128. 最长连续序列哈希,key表示左右端点,value表示区间长度
283. 移动零利用指针赋值不为0的数
27. 移除元素利用指针赋值不为val的数
11. 盛最多水的容器长板向内移动一定变小,短板向内移动可能增大可能变小
15. 三数之和注意避免重复
16. 最接近的三数之和简单版三数之和
560. 和为 K 的子数组前缀和+dic
238. 除自身以外数组的乘积模拟左连乘和右连乘
189. 轮转数组注意 mod 数组长度
56. 合并区间区间左右端口的取值
73. 矩阵置零用两个set存储需要置为0的行、列
54. 螺旋矩阵模拟,边界判断
59. 螺旋矩阵 II模拟,边界判断
48. 旋转图像对角4个数循环交换
724. 寻找数组的中心下标左、右和
14. 最长公共前缀字符串
912. 排序数组手撕快速排序 / 手撕堆排序
螺栓螺母配对基于快速排序思想
179. 最大数自定义快排
8. 字符串转换整数 (atoi)模拟,但是要考虑特殊情况
151. 反转字符串中的单词用库方法 / 模拟
2248. 多个数组求交集使用set
415. 字符串相加从后往前相加,注意补零
43. 字符串相乘竖式相乘 + 字符串相加
1556. 千位分隔数模拟
165. 比较版本号字符串模拟
470. 用 Rand7() 实现 Rand10()1. (rand_X() - 1) * Y + rand_Y() 等概率生成[1, X * Y]范围的随机数,即实现了 rand_XY()
2. 要实现randY(),就需要先实现rand_N(),并且保证N大于Y且是Y的倍数。这样再通过rand_N() % Y + 1 就可以得到[1,Y]范围的随机数了
3. 同时需要拒绝采样
169. 多数元素哈希表 / 利用基准值和计数器
136. 只出现一次的数字异或性质
41. 缺失的第一个正数数组哈希(注意交换赋值的问题)
442. 数组中重复的数据和41一样
整数与IP地址间的转换模拟
31. 下一个排列举例然后找到规律
多个有序数组求第K小使用位置数组来辅助
581. 最短无序连续子数组从左到右,从右到左
小于n的最大数模拟,用到了回溯的思想/回溯
88. 合并两个有序数组逆向双指针
面试题 16.06. 最小差排序 + 双指针
172. 阶乘后的零数学推导
440. 字典序的第K小数字前缀判断
390. 消除游戏模拟删除
680. 验证回文串 II模拟
849. 到最近的人的最大距离双指针
1574. 删除最短的子数组使剩余数组有序双指针
215. 数组中的第K个最大元素先划分三个数组,然后分治