代码部分
依旧二分法,然后小心点写,题目差不多类似的,升序这道题目是非递减,二分…
我的思路,若找得到,先找到然后加加减减试探
认识报错:java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0数组越界……因为我high = nums.length-1忘记减一了…
然后又错了,因为理应else {--high;}我写了++…
class Solution {public int[] searchRange(int[] nums, int target) {int low = 0,high = nums.length-1;int start,end;while (low<=high) {int mid = (low + high) / 2;if (nums[mid] == target) {start=mid;end=mid;while(start > 0 && nums[start - 1] == target){--start;}while(end < nums.length-1 && nums[end + 1] == target){++end;}return new int[]{start,end};}else if (nums[mid] < target) {++low;}else {--high;}}return new int[]{-1,-1};}}
反思部分
反思1:markdown的格式搞得有问题,不过小事,才写了几题,改的方便。
反思2:++—搞错,得锤
反思3:关于本题,所需要的可以说是区间,我是用while循环和start与end俩变量去找,其实可以有别的方法,比如还是二分法,因为是非递减,所以通过<这样找到一个大致位置
然后接着往后探索…

