代码随想录算法训练营第二天

本文讲述了如何利用双指针和滑动窗口技巧解决LeetCode中的数组问题,如977.有序数组的平方、209.长度最小的子数组和59.螺旋矩阵II。通过观看视频教程,作者理解并掌握了这些解题方法,强调了算法思维在处理复杂数组问题时的重要性。
摘要由CSDN通过智能技术生成
 977.有序数组的平方 

题目建议: 本题关键在于理解双指针思想 

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

文章讲解:代码随想录

视频讲解: 双指针法经典题目 | LeetCode:977.有序数组的平方_哔哩哔哩_bilibili

看到题干的第一时间想到的还是暴力解法,但是果断选择看一下卡尔的视频去理解双指针的解法,这里主要问题在于需要考虑有序数组头尾两端在平方后依然应为最大的两个值,此时比较两平方后的数值更大的移至新的有序数组最右端,同时其下方的对应指针也应对应向右或向左移动,较小的数值则留下和指针移动后指向的下一个数字平方后比较。双指针大致思想如上

这里提出一个新的设想,是否可以在平方前加一个判定,如果为负数则添加一个负号与另一个数比较,如果为正数则直接参与比较(新方法主要思想在于直接比较数值绝对值,绝对值大的数值则直接平方向右移至最大部分,理论上可以减少机器多次运算数据平方而带来的计算冗余,后面会找机会试着写一下。

 209.长度最小的子数组

题目建议: 本题关键在于理解滑动窗口,这个滑动窗口看文字讲解 还挺难理解的,建议大家先看视频讲解。  拓展题目可以先不做。 

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

文章讲解:代码随想录

视频讲解:拿下滑动窗口! | LeetCode 209 长度最小的子数组_哔哩哔哩_bilibili

第一次了解滑动窗口的理念,看完题干之后第一时间感觉无从下手,看完卡尔的视频之后豁然开朗,对于双指针的用法更上了一层楼,有一些小问题但在和朋友讨论之后迅速解决,后面周日有时间希望可以尝试更多解法。

 59.螺旋矩阵II

题目建议:  本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。 

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

文章讲解:代码随想录

视频讲解:一入循环深似海 | LeetCode:59.螺旋矩阵II_哔哩哔哩_bilibili

看到题干之后有一定想法,但是简单看了下卡尔的视频发现还是掉进了看似简单的误区里面,看完视频之后发现将种类统一用大致基本相似的解题思路更好理解一些,同时也不会在自己写着写着的时候把自己绕进去。再次用到了之前二分查找中左闭右开还是左闭右闭的问题解法,同时大致思路依然还是和双指针题目的解法大致相同。其中有一些小问题正在与同学共同探讨解决。

 总结 

昨天因为感冒加剧身体确实不适0需要去医院就医的情况所以打卡没能跟上,后面一定要找机会跟上来。总而言之,数组的问题除了部分很明显的可以直接暴力解法破解以外,目前遇到的大部分都是可以用双指针或者指针的思想去破解的,收获很大,成就满满的一天。

文章链接:代码随想录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值