【c++】二分法查找单调数组中某个数的位置

题目来自leetcode:
【c++】二分法查找单调数组中某个数的位置_第1张图片
二分法模板:
1.left小于等于right
2.left更新为middle+1
3.right更新为middle-1
4.返回left
这样最终得到的left比right大1.

class Solution {
public:
	int searchInsert(const vector<int>& nums, int target) {
		int lefti = 0, righti = nums.size() - 1;
		int middlei;
		while (lefti <= righti) {
			middlei = (lefti + righti) / 2;
			if (target < nums[middlei]) {
				righti = middlei - 1;
			}
			else if (target > nums[middlei]) {
				lefti = middlei + 1;
			}
			else {
				return middlei;
			}
		}
		return lefti;
	}
};

你可能感兴趣的:(c++回顾)