最强解析面试题:旋转数组查找
Posted 魏小言
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最强解析面试题:旋转数组查找相关的知识,希望对你有一定的参考价值。
文章目录
最强解析面试题:旋转数组查找
文章讲解 “ 旋转数组查找 ” 经典面试题,包含思路及源码,及解惑!
题目
一个数组是由一个递增数列右移若干位形成的,比如4,5,1,2,3是由1,2,3,4,5左移两位形成的,在这种数组中查找某一个数。
思路
- 二分查找
- 找出目标数值所在的区间
代码
package main
import "fmt"
func main()
fmt.Println("res:", Res())
func Res() int
var tar = []int6,1,2,3,4,5
n:=4
i:=0
l:=len(tar)-1
for ;i<=l;
m:= i + (l-i)/2
if tar[m] == n
return m
if tar[m] < tar[l]
if tar[m] < n && n<=tar[l]
i = m + 1
else
l = m - 1
else
if tar[i] < n && n<=tar[m]
l = m - 1
else
i = m + 1
return -1
附录
自负和自大真的是搞笑!
以上是关于最强解析面试题:旋转数组查找的主要内容,如果未能解决你的问题,请参考以下文章