Leetcode 1-50 review

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迭代

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值