Leetcode
- Test1 两数之和,找出两个数,唯一等于target
- Test2 链表倒叙相加
- Test3 无重复最长子串
- Test4 两个正序数组中位数
- Test5 最长回文字符串
- Test6 Z变换
- Test7 整数反转
- Test8 字符串转换整数
- Test9 回文整数
- Test10 .*正则表达式匹配
- Test11 最大容器
- Test12 Int转Roma
- Test13 Roma转Int
- Test14 最长公共前缀
- Test15 三树之和
- Test16 最接近三数之和
- Test17 电话号码组合
- Test18 四数之和
- Test19 删除倒数第n个节点
- Test20 有效括号
- Test21 合并两个有序链表
- Test22 生成括号
- Test23 合并K个升序列表
- Test24 两两交换链表节点
- Test25 K个一组反转
- Test26 删除数组重复
- Test27 移除元素
- Test28 实现strSTR()
- Test29 两数相除
- Test30 串联子串匹配
- Test31 下一个排序
- Test32 最长有效括号
- Test33 搜索旋转排序数组
- Test34 在排序数组中查找元素的第一个和最后一个位置
- Test35 搜索插入位置
- Test36 有效数独
- Test37 解数独
- Test38 外观数列
- Test39 组合总和
- Test40 组合总和2
- Test41 缺失的第一个正数
- Test42 接雨水
- Test43 字符串相乘
- Test44 通配符匹配
- Test45 跳跃游戏
- Test46 全排列
- Test47 全排列2
- Test48 旋转图像
- Test49 异位词分组
- Test50 pow
Test1 两数之和,找出两个数,唯一等于target
两种解法,简单或单哈希表存补数
Test2 链表倒叙相加
倒叙从后往前算,注意一下9999这种情况,每个都需改变,需向前补空0
Test3 无重复最长子串
哈希表存,双指针,两种情况做判断,存在或不存在,不存在直接存,存在有一步math.Max,但都更新
Test4 两个正序数组中位数
tricky题,过
Test5 最长回文字符串
动态规划或者中心扩散(简单)
动态规划画表格,initialize,从下往上,记录
Test6 Z变换
找规律,easy,StringBuilder
Test7 整数反转
long转int,判断强制转换后是否相等,/10
Test8 字符串转换整数
正则/^[\+\-]?\d+/
,状态机也是个好想法,if最为愚蠢
Test9 回文整数
;;
<1
*10+%
/10
if ==
Test10 .*正则表达式匹配
动态规划,从上往下,输出最后一个,.=>-1-1,*=>-1-1||-1-0
Test11 最大容器
双指针,小的往里移
Test12 Int转Roma
贪心
Test13 Roma转Int
同理贪心
Test14 最长公共前缀
循环
Test15 三树之和
排序+双指针,方便去重
Test16 最接近三数之和
加个判断值,同上
Test17 电话号码组合
无法判断层数=>递归
layer == length add return
for
iteration
Test18 四数之和
三数
Test19 删除倒数第n个节点
双指针
Test20 有效括号
入栈出栈 Stack
Test21 合并两个有序链表
迭代递归均可
Test22 生成括号
迭代
open < max
close < open
Test23 合并K个升序列表
分治,优先队列,循环两列表合并
分治:
== 2 return mergeTwo
A = merge left
B = merge right
mergeTwo AB
Test24 两两交换链表节点
换 pre head temp
Test25 K个一组反转
栈
Test26 删除数组重复
双指针
Test27 移除元素
双指针 easy
Test28 实现strSTR()
循环
循环优化 判断头,index+1
Test29 两数相除
2的N次方逼近
Test30 串联子串匹配
滑动窗口+hashmap
首轮移单个
Test31 下一个排序
思路相似,写法区别
通过例子找到规律
从后往前找到第一个升序(i < i+1)此处证明后面全是降序
找到i之后的第一个最接近的大于
交换之和,i之后全部升序
(换最大位,此最大位保证后面全部降序,这样后面全取最小可保证是下一个排序)
Test32 最长有效括号
easy,栈可解决
Test33 搜索旋转排序数组
二分法查找,根据start,mid,end分情况
递归,循环都可
Test34 在排序数组中查找元素的第一个和最后一个位置
二分法查找到target,再左右移动
Test35 搜索插入位置
二分法,加条判断 ==
或者设置ans只取后一位
Test36 有效数独
最蠢方法三次遍历
可一次遍历,记录每个格子在行列块中的位置,判断重复
Test37 解数独
复杂的递归
Test38 外观数列
简单的递归
Test39 组合总和
复杂一点的递归
Test40 组合总和2
复杂一点的递归,改变循环条件,不从自己开始
Test41 缺失的第一个正数
通过符合记录,保证常数空间
Test42 接雨水
入栈出栈,横行计算叠加
Test43 字符串相乘
简单,竖式乘法
Test44 通配符匹配
同上10
Test45 跳跃游戏
找到当前位置所触及到的格子,再加上所触及到格子的值,可得出当前位置所触及到的最远距离,这样下一次跳跃就是那个格子,每次都是单次跳跃且遍历,所以每次都是能挑到的最远距离,确保下一个跳到的位置能做最远的遍历
Test46 全排列
迭代+状态管理,只在可选的状态里做循环
Test47 全排列2
多一步判断,当前是否跟前一个一样
Test48 旋转图像
n/2,旋转,规律
Test49 异位词分组
hash表List,sort排序,contain
Test50 pow
负号的换算,转换成1/x,漂亮
n/2迭代