Categorygithub.com/szhou12/leetcode-goleetcode0744-Find-Smallest-Letter-Greater-Than-Target
package
0.0.0-20241220224003-b7cf03a90b2b
Repository: https://github.com/szhou12/leetcode-go.git
Documentation: pkg.go.dev

# README

744. Find Smallest Letter Greater Than Target

Solution idea

Binary Search 经典变形题 - 找最小的大于Target的元素

  • 注意Post-processing找不到的情况: 数组内所有元素都 $\leq$ Target

Time compelxity = $O(\log n)$

拓展:找最大的小于Target的元素

func binarySearch(nums []int, target int) int {
	left := 0
	right := len(nums) - 1
	for left < right {
		mid := right - (right-left)/2
		if nums[mid] == target {
			right = mid - 1
		} else if nums[mid] < target {
			left = mid
		} else {
			right = mid - 1
		}
	}

	// post-processing: 找不到小于的元素
	if nums[left] >= target {
		return -1
	}

	return left
}