最近刷leetcode上瘾,准备刷完一个tag就总结一下基本的写法,长期更新。。。
二分查找
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
int binary_search(int[] nums, int target) { int left = 0; int right = nums.length-1; while(left<=right) { int mid = left + (right - left) / 2; if(nums[mid] == target) { return mid; } else if(nums[mid] < target) { left = mid + 1; } else if(nums[mid] > target) { right = mid - 1; } } return -1; }
|
双指针
1 2 3 4 5 6 7 8 9 10 11 12 13
|
void reverse(int[] nums) { int left = 0; int right = nums.length - 1; while (left < right) { int temp = nums[left]; nums[left] = nums[right]; nums[right] = temp; left++; right--; } }
|
## 滑动窗口