java刷题--33搜索旋转排序数组
发布日期:2021-05-10 08:23:22 浏览次数:21 分类:精选文章

本文共 3258 字,大约阅读时间需要 10 分钟。

Java���������33���������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������-1���

������������

������������������������������������������������������������������������������ [1,2,3,4,5]��������������������������������������� [3,4,5,1,2]������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������

���������������������������������������������������������������������������������������������������������������O(log n)������������������������������������������������������������������������������������������

������������

  • ������������������left���right���������������������������������������
  • ������������������������������mid���������������
  • ���������������������������mid������������������������mid������������
  • ���������������������������������������������������������������������������������������������������������������������������������������������������������������������
  • ���������������������������������������������������������������������������������������������������������������
  • ������������������������������������������������������������������������������������������������������
  • ������������

    public class Solution {
    public int search(int[] nums, int target) {
    int len = nums.length;
    int left = 0, right = len - 1;
    while (left <= right) {
    int mid = left + (right - left) / 2; // ���������������������������������������������������
    if (nums[mid] == target) {
    return mid;
    }
    // ������������������������������
    if (nums[mid] <= nums[right]) {
    // ���������������target���������������������������
    if (target < nums[mid] && target <= nums[right]) {
    left = mid + 1;
    } else {
    right = mid - 1;
    }
    } else {
    // ���������������������������������������������������������������
    if (nums[left] <= target && target < nums[mid]) {
    right = mid - 1;
    } else {
    left = mid + 1;
    }
    }
    }
    return -1;
    }
    }

    ������������������

    ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ������������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������-1������������������������������������O(log n)������������������������������������������������������

    上一篇:UnicodeEncodeError
    下一篇:java刷题--31下一个排列

    发表评论

    最新留言

    很好
    [***.229.124.182]2025年04月14日 10时02分39秒