力扣702二分查找
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
var search = function(nums, target) {
// 定义左边指针和右边指针
let left = 0,right = nums.length - 1;
while (left <= right) {
// 定义查找的中间点
const mid = Math.floor((right - left)/2) + left;
// 当二分查找的中间点等于目标值时候,停止循环
if (nums[mid] == target) {
return mid
// 如果中间值大于目标值,说明目标值在中间值的左边,更新右边值
}else if (nums[mid] > target) {
right = mid - 1
}
// 如果中间值大于目标值,说明目标值在中间值的坐标,更新左边值
else {
left = mid + 1;
}
}
return -1;
};
力扣27移除元素
/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function(nums, val) {
// 定义快慢2指针
let slow = 0,fast = 0;
// 定义循环终止条件
while (fast < nums.length) {
// 判断当前循坏值是否不等于需要移除的值
if (nums[fast] != val) {
// 更新慢指针的值
nums[slow] = nums[fast];
// 慢指针向右移动
slow++;
}
fast++;
}
return slow;
};