# 寻找中心索引

# 1.1 题目

题目

# 1.2 解题思路

题目中给定了一个有序的数组,且最后要求时间复杂度为 log(n) 的算法,那么我们可以考虑使用二分查找法来解决这个问题。
在这里就不赘述二分查找的思路和实现了,LeetCode 的算法书籍上有对应的讲解。

# 1.3 代码实现

class Solution {
public:
    int searchInsert(vector<int> &nums, int target) {
        int left = 0, right = nums.size() - 1;
        while (left <= right) {
            // 防止溢出
            int mid = left + (right - left) / 2;
            if (nums[mid] < target) {
                left = mid + 1;
            } else if (nums[mid] > target) {
                right = mid - 1;
            } else { // 找到了 立刻返回
                return mid;
            }
        }
        return left; // 未找到 则返回插入位置
    }
};

大道五十,天衍四十九,人遁其一!