花了将近一周的时间总算把代码随想录的前两天任务做完了,还是有收获的🥹
总结一下day1 day2的五道题:
从一个高层面理解,无论是 双指针,滑动窗口,二分法还是模拟行为,都需要我们:
1.理解任务本质,并结合数组的特性进行操作:比如原地删除,就需要我们理解数组是不可以简单删除的,因为数组的存储空间是连续的,不能中断
2.判定任务的使用方法,并形成大的循环框架,清楚时间复杂度:正如卡哥所言,数组的思路并不难,我们可以因此先对问题有方法上的选择,然后根据大体要执行的内容,心里形成循环的框架,思考时间复杂度。 二分法查找的复杂度是 O(log n) sort的复杂度是 O(n log n);
3.无论是二分法/双指针/滑动窗口都是有边界的,并且每个循环都伴随着边界的变动,在执行数列问题时尤其要注意判定边界的定义;并在:
(1)初始化,(2)循环条件,(3)边界更新操作
上保持一致;二分法的题目很好的体现了这一点!
4.多加练习!
加油!