佛山免费自助建站模板,南通app开发公司,优秀设计方案网站,郑州建设信息网可以领证书吗704 题
主要强调#xff0c;左闭右闭的情况#xff0c;就是每次查询都会和 [left, right] 进行比较。所以后面的都是mid-1#xff0c;mid1 的情况。
package mainfunc search(nums []int, target int) int {// 二分查找方法// 每次查找都是左闭右闭的情况left : 0right : …704 题
主要强调左闭右闭的情况就是每次查询都会和 [left, right] 进行比较。所以后面的都是mid-1mid1 的情况。
package mainfunc search(nums []int, target int) int {// 二分查找方法// 每次查找都是左闭右闭的情况left : 0right : len(nums) - 1var mid intfor left right {mid left ((right - left) 1)if target nums[mid] {left mid 1} else if target nums[mid] {right mid - 1} else {return mid}}return -1
}func main() {res : search([]int{-1, 0, 3, 5, 9, 12}, 9)println(res)
}27 移除元素
思路直观的想法就是遇到等于val的时候之后后面的往前面一个个覆盖类似于是插入排序。 // 使用快慢指针的方法
快指针一定指向不是val的元素 相当于是遇到等于不等与的情况slow然后和fast换 当遇到等于的情况slow就指向val了
func removeElement(nums []int, val int) int {// 使用快慢指针的方法直观的想法就是遇到等于val的时候之后后面的var slow 0for fast : 0; fast len(nums); fast {if nums[fast] ! val {nums[slow] nums[fast] slow}}return slow
}