// 解 区间左闭右闭 左右指针不包括中间值mid
func Search(nums []int, target int) int {
// 区间左闭右闭
left := 0
right := len(nums) - 1
for left < right {
mid := (left + right) / 2
if nums[mid] > target {
right = mid - 1
} else if nums[mid] < target {
left = mid + 1
} else {
return mid
}
}
return -1
}
//双指针解法,快指针寻找新数组中需要保留的元素,慢指针是数组需要赋值的下标
func removeElement(nums []int, val int) int {
slow := 0
for i := 0; i < len(nums); i++ {
if nums[i] != val {
nums[slow] = nums[i]
slow++
}
}
return slow
}