class Solution { public int removeElement(int[] nums, int val) { int latter = nums.length-1; int count = 0; int pre = 0; while(latter>=pre) { if(nums[pre]!=val) { pre++; }else if(nums[pre]==val){ int temp = nums[pre]; nums[pre] = nums[latter]; nums[latter] = temp; latter--; count++; } }
return nums.length-count; } } |
之前刷过一次,所以比较快就写了出来
class Solution { public int quicksort(int[] nums,int target) { int len = nums.length-1; int r = len; int l = 0; int mid = (l+r)/2; while(l<=r) { mid = (r-l)/2+l; if(nums[mid]==target){ return mid; } else if(nums[mid]>target&&l<=r){ r = mid-1; }else if(nums[mid]<target&&l<=r){ l = mid+1; } } return -1; } public int search(int[] nums, int target) { int res = quicksort(nums,target); return res; } } |
总是会忘记mid=(r-l)/2+l;来进行防止溢出的操作,希望以后的自己可以改正;
在看了,代码随想录的解析后,对左闭右开的区间情况下,二分查找的代码该怎么写进行了学习;