力扣TOP100中等题总结(DAY1)

2.【两数相加】直接A了,注意一些小细节就行,例如记得用NULL初始化一下

3.【无重复字串】自己模拟可以看出可以运行,但是总觉得不是很理解,最后打了很多次把代码背下来了,代码本身也比较简单。

5.【最长回文子串】最大的难点就是计算str数组相关的东西,例如分配多大的空间,strncpy这个函数的一些参数的确定,当然最近一次敲打犯了一个低级错误:在extend函数里面,ans[0] = left;这个记得不要写反了

11.【盛最多水的容器】直接A了,记住一个核心,让小的移动指针,大的不要动

15.【三数之和】有点难度,在中等题里面算比较难了,一是仔细思考减枝的部分应该在哪里,目的是去掉重复的三元组;二是注意犯了好几次的错误,一定要记得为*returnColumnSizes这个数组分配空间,三是注意不要漏了while(left < right)

17.【电话号码的字母组合】最后一个循环既是核心也很难理解(数学),实在不行只能背下来,第一次写出现一个错误还一直发现不了,就是不能直接写digits[i],而是goodFriend(digits[i]),还有就是最后两个for循环的边界不能搞反了,好好理解一下,最后务必记下这个关键式子:

ans[j][i] = se[digits[i] - '2'][(j / interval) % goodFriend(digits[i])];

19.【删除链表的倒数第N个结点】一定要注意当删除的结点为头结点时的情况,当为这种情况下,又不能直接return NULL,应该要r = r -> next,再return r;

22.【括号生成】(回溯题,进行专题总结)

31.【下一个排列】记住基本方法(以下所出现的全部都是<=,>=)

1.从后往前找第一个后面比前面大的数

2.如果第一步找到了对应的数,就从后往前找第一个比nums[i]大的数,然后将分别找到的两个数字进行交换,这里可能出错,里面的for循环跳出之后再将对应的i和j对应的值交换。

3.翻转nums[i]以后的部分,即[i+1, numsSize-1]

33.【搜索旋转排序数组】注意while的边界是left<=right,稍微有些变形的二分法,将对应的情况分为了四种,稍微举一些实例就可以确定对应的情况判定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kurekoe Senyuu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值