● 今日學(xué)習(xí)的文章鏈接,或者視頻鏈接
● 自己看到題目的第一想法
● 看完代碼隨想錄之后的想法
● 自己實(shí)現(xiàn)過(guò)程中遇到哪些困難
● 今日收獲,記錄一下自己的學(xué)習(xí)時(shí)長(zhǎng)
第一天任務(wù)
704. 二分查找
class Solution {
public int search(int[] nums, int target) {
int length = nums.length;
int low = 0;
int high = length - 1;
while (low <= high) {
int mid = (high - low) / 2 + low;
final int midVal = nums[mid];
if (target == midVal) {
return mid;
}
if (target < midVal) {
high = mid - 1;
}else {
low = mid + 1;
}
}
return -1;
}
}
27. 移除元素
看著挺簡(jiǎn)單的題奏纪,還是試了好幾次...
初步想法是左邊一個(gè)指針,右邊一個(gè)指針斩启。
class Solution {
public int removeElement(int[] nums, int val) {
final int length = nums.length;
int count = 0;
if (length == 1) {
return nums[0] == val ? 0 : 1;
}
int x = 0;
int y = length - 1;
while (x <= y) {
// 從左側(cè)找相等的
while (x <= y) {
int xVal = nums[x];
if (xVal == val) {
count++;
break;
}
x++;
}
// 從右側(cè)找不等的
while (x < y) {
int yVal = nums[y];
if (yVal != val) {
break;
} else {
count++;
}
y--;
}
if (x < y) {
int temp = nums[y];
nums[y] = nums[x];
nums[x] = temp;
}
x++;
y--;
}
return length - count;
}
}