美文网首页
0033-搜索旋转排序数组

0033-搜索旋转排序数组

作者: liyoucheng2014 | 来源:发表于2018-12-08 19:55 被阅读0次

搜索旋转排序数组

方案一


如果中间的数小于最右边的数,则右半段是有序的,若中间数大于最右边数,则左半段是有序的,我们只要在有序的半段里用首尾两个数组来判断目标值是否在这一区域内,这样就可以确定保留哪半边了。

C-源代码


int search1(int* nums, int numsSize, int target) {
    int left = 0;
    int right = numsSize - 1;
    while (left <= right) {
        int mid = left + ((right - left) >> 1);
        if (nums[mid] == target) {
            return mid;
        }
        else if (nums[mid] < nums[right]) {
            if (nums[mid] < target && nums[right] >= target) {
                left = mid + 1;
            }
            else {
                right = mid - 1;
            }
        }
        else {
            if (nums[left] <= target && nums[mid] > target) {
                right = mid - 1;
            }
            else {
                left = mid + 1;
            }
        }
    }
    return -1;
}

void test_0033(void) {
    int arr[7] = { 4,5,6,7,0,1,2 };
    int len = sizeof(arr) / sizeof(arr[0]);
    int target = 0;
    int ret = search1(arr, len, target);
    printf("ret = %d\n", ret);
    
    int target1 = 3;
    int ret1 = search1(arr, len, target1);
    printf("ret = %d\n", ret1);
}

参考Grandyang

相关文章

  • 0033-搜索旋转排序数组

    搜索旋转排序数组 方案一 如果中间的数小于最右边的数,则右半段是有序的,若中间数大于最右边数,则左半段是有序的,我...

  • 2020-2-16 刷题记录

    0X00 leetcode 刷题 7 道 搜索旋转排序数组(33) 搜索旋转排序数组 II(81) 寻找旋转排序数...

  • 解题报告 - 搜索旋转排序数组

    解题报告 - 搜索旋转排序数组 LeetCode 搜索旋转排序数组 @TOC[%E6%96%87%E7%AB...

  • [Leetcode] 33. 搜索旋转排序数组

    33. 搜索旋转排序数组 来源: 33. 搜索旋转排序数组 1. 解题思路 二分法查找 2. 代码

  • 33. 搜索旋转排序数组

    33. 搜索旋转排序数组 题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,...

  • LeetCode:搜索旋转排序数组

    搜索旋转排序数组 题目叙述: 假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,...

  • LeetCode 33

    搜索旋转排序数组 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6...

  • 需要牢记的二分法基础模板

    搜索旋转排序数组 click here for leetcode detail[https://leetcode-...

  • Python小白 Leetcode刷题历程 No.81-No.

    Python小白 Leetcode刷题历程 No.81-No.85 搜索旋转排序数组Ⅱ、删除排序链表中...

  • 搜索旋转排序数组

    一、leetcode 33. 搜索旋转排序数组 题目描述(题目难度,中等) 假设按照升序排序的数组在预先未知的某个...

网友评论

      本文标题:0033-搜索旋转排序数组

      本文链接:https://www.haomeiwen.com/subject/zucchqtx.html