第一次写博客,简单发挥一下吧
今日学习算法两小时
LeeCode 二分查找:
方法思想:设置两个变量left和right,通过移动二者最终找到目标值。
题目1链接:704. 二分查找 - 力扣(LeetCode)
情况1:左闭右开
情况2:左闭右闭
四种地方如下:
1.right的初始值
2..while()的判断条件
3.right的更新值
4.如果找不到目标值,left和right最终的相对大小,情况一是left>=right,情况二是left>right
遇到的困难:return -1 ;的位置问题,问题在于对left和right的相对位置不清楚
题目2链接:35. 搜索插入位置 - 力扣(LeetCode)
收获:
遇到的困难:
最后return right + 1;这段代码,问题在于:没有清楚目标值位置的三种情况;对left和right的相对位置不清楚
题目3链接:34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)
主函数:
子函数:
收获:
遇到的困难:
1.left_border = right;这段代码,问题在于:不清楚求左边界的思路。
2.主函数中三种情况的输出,问题在于:对目标值的位置问题三种情况分析不清楚。
3.求边界的时候没有对边界初始化。
LeeCode 27.移除元素
方法思想:利用slowIndex和fastIndex对原先数组进行重新覆盖,fastIndex进行筛选,slowIndex接受符合筛选条件的结果。
收获: