Leetcode Binary Search总结

278. First Bad Version
给定一个数组,前一段为Good,后一段为Bad,找到第一个Bad的位置

852. Peak Index in a Mountain ArrayAC代码
给定一个数组nums,数组元素大小呈“山峰状”,求“山顶”位置
【解法】考虑相邻两项的大小关系,nums[i] < nums[i + 1]记为Good,nums[i] > nums[i + 1]记为Bad,则问题转化为278. First Bad Version

162. Find Peak Element
给定一个数组nums,保证相邻元素不相等,同时假设nums[-1] = nums[n] = -∞,则数组nums中存在多个“山峰”,找出任意一个“山峰”的位置

【解析】上述三题的代码几乎一模一样(除了852. Peak Index in a Mountain Array的right = nums.size() - 2)
要点1:循环条件为left < right,最终left与right相等,即为所求位置
要点2:mid使用偏左的版本,同时考虑nums[mid]和nums[mid + 1]的大小关系(不必担心mid + 1会越界)

while( left <= right )

367. Valid Perfect Square
判断一个正整数num是否为完全平方数

69. Sqrt(x)
求非负整数x的平方根,向下取整

猜你喜欢

转载自blog.csdn.net/o0Helloworld0o/article/details/81805550