今日学习的文章链接和视频链接
- 二分查找
题目链接:https://leetcode.cn/problems/binary-search/
文章讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html
视频讲解:https://www.bilibili.com/video/BV1fA4y1o715
自己看到题目的第一想法
新建三个变量 ,left、right、middle
不断二分,判断大小
看完代码随想录之后的想法
老师讲的真好,
写的时候注意分清写法左闭右闭,和左闭右开区间。
自己实现过程中遇到哪些困难
想不到在那里开始+1,循环结束条件不清晰。
今日收获,记录一下自己的学习时长
两个int型变量相加注意越界。
本题目可以 left+(righ - left )>> 1 ;
1小时
今日学习的文章链接和视频链接
- 移除元素
题目建议: 暴力的解法,可以锻炼一下我们的代码实现能力,建议先把暴力写法写一遍。 双指针法 是本题的精髓,今日需要掌握,至于拓展题目可以先不看。
题目链接:https://leetcode.cn/problems/remove-element/
文章讲解:https://programmercarl.com/0027.%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0.html
视频讲解:https://www.bilibili.com/video/BV12A4y1Z7LP
自己看到题目的第一想法
遍历一遍,删除等于val的值,
看完代码随想录之后的想法
使用快、慢指针来实现,十分的妙。
在写的时候犯了一个错了,
快指针的值给慢指针的值应该在 if条件中完成,也就是当新的数组需要更新的时候再更新,而且要注意顺序,先更新值,再给慢指针++。
自己实现过程中遇到哪些困难
写着写着脑子乱了,实现不出来,哭。
今日收获,记录一下自己的学习时长
17:00开始 23点结束 专注力还需提高,偷偷刷B站占用不少时间。
vector.erase()的时间复杂度是O(n);
使用for循环来遍历,自己用while时写的太混乱。