Golang Leetcode 287. Find the Duplicate Number.go

版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89055081

思路

二分查找

code

func findDuplicate(nums []int) int {
	left, right := 1, len(nums)-1
	mid := left + (right-left)/2
	for left < right {
		c := 0
		mid = left + (right-left)/2
		for i := 0; i < len(nums); i++ {
			if nums[i] <= mid {
				c++
			}
		}
		if c > mid {
			right = mid
		} else {
			left = mid + 1
		}
	}
	return left
}

更多内容请移步我的repo: https://github.com/anakin/golang-leetcode

猜你喜欢

转载自blog.csdn.net/anakinsun/article/details/89055081
今日推荐