Golang Leetcode 287. Find the Duplicate Number.go

时间:2022-06-19
本文章向大家介绍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
}