Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

搜索旋转排序数组 #351

Open
lzxjack opened this issue Jan 11, 2023 · 1 comment
Open

搜索旋转排序数组 #351

lzxjack opened this issue Jan 11, 2023 · 1 comment

Comments

@lzxjack
Copy link
Contributor

lzxjack commented Jan 11, 2023

No description provided.

@lzxjack
Copy link
Contributor Author

lzxjack commented Jan 12, 2023

const search = (nums, target) => {
  let [left, right] = [0, nums.length - 1];

  while (left <= right) {
    const mid = (left + right) >> 1;
    if (nums[mid] === target) return mid;
    if (nums[left] < nums[mid]) {
      // 左边是升序区间
      if (nums[left] <= target && target <= nums[mid]) {
        // 目标值在升序区间内
        right = mid - 1;
      } else {
        // 目标值不在升序区间内
        left = mid + 1;
      }
    } else {
      // 右边是升序区间
      if (nums[mid] <= target && target <= nums[right]) {
        // 目标值在升序区间内
        left = mid + 1;
      } else {
        // 目标值不在升序区间内
        right = mid - 1;
      }
    }
  }

  return nums[left + 1] === target ? left + 1 : -1;
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant