Search in Rotated Sorted Array

原创 2015年11月17日 16:44:51

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

You are given a target value to search. If found in the array return its index, otherwise return -1.

You may assume no duplicate exists in the array.

public class Solution {
    /**the roated list will be splitted into two parts after the rotate,and both are sorted list */
    /*we can use the lsearch, but here we can use the binary search with the attribute of rotated list */
    /*when we split the list with middle, there must be one sorted list */

    //assume no duplicate exists in the array
    public int search(int[] nums, int target) {
        if(nums == null || nums.length == 0)
            return -1;
        int low = 0;
        int high = nums.length - 1;
        while(low <= high) {
            int mid = (low + high);
            if(nums[mid] == target)
                return mid;

            if(nums[mid] > nums[low]) {
                if(target >= nums[low] && target < nums[mid])
                    high = mid - 1;
                else
                    low = mid + 1;
            }
            else {
                if(target > nums[mid] && target <= nums[high])
                    low = mid + 1;
                else
                    high = mid - 1;
            }
        }

        return -1;
    }
}

循环有序数组中的二分查找 Search in a rotated sorted array

二分查找是必须要掌握的技能。二分查找适用于有序的、顺序的存储结构。 1、可以用它来查找某一个数 2、可以用于查找某一个范围。如《二分查找有序数组中某个数的所在范围 Search for a Rang...
  • luckyjoy521
  • luckyjoy521
  • 2013年12月22日 19:16
  • 2115

第三周算法分析与设计:Search in Rotated Sorted Array

算法描述: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehan...
  • qq_20353557
  • qq_20353557
  • 2017年03月09日 22:32
  • 88

Rotated Sorted Array(旋转数组总结)

首先什么叫旋转数组,把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转。对于这样的数组,我们可以画一下的一个图来表示。 ...
  • willduan1
  • willduan1
  • 2016年12月17日 09:50
  • 4716

Leetcode全树类问题

Leetcode全树类问题。算法总的来说就是递归(Stack, DFS)和广度优先(Queue, BFS)两种。下面有关二叉树类linked list的题目,若不加特别说明......
  • wangxiaojun911
  • wangxiaojun911
  • 2014年02月04日 03:03
  • 8651

leetcode解题之33&81. Search in Rotated Sorted Array java版(在旋转的数字中查找指定值)

33. Search in Rotated Sorted Array ,81. Search in Rotated Sorted Array II 。 leetcode解题之33&81. Search...
  • mine_song
  • mine_song
  • 2017年04月09日 22:58
  • 238

leetcode 刷题之路 35 Search in Rotated Sorted Array II (旋转排序数组查找终极版)

Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this affec...
  • u013140542
  • u013140542
  • 2014年08月01日 09:46
  • 409

Leetcode刷题记—— 33. Search in Rotated Sorted Array(在翻转顺序的数组里查找)

一、题目叙述: Suppose a sorted array is rotated at some piv...
  • sunshine0_0
  • sunshine0_0
  • 2017年01月04日 22:02
  • 89

CGAL 4.10 官方文档软件包概述 ——组合算法类

本篇介绍CGAL库组合算法类软件包单调排序矩阵搜索和线性和二次规划求解器的概要内容。...
  • lotusiki
  • lotusiki
  • 2017年09月13日 21:44
  • 226

算法课_算法分析_

算法课_算法分析_ O(n^2), O(nlgn), O(n) t=an^b+c given two groups of t and n, the b can be calculucated ...
  • sevenseablue
  • sevenseablue
  • 2013年09月05日 08:10
  • 1207

Leetcode全数组问题

目录 1、编号2 Median of Two Sorted Arrays There are two sorted arrays A and B of size m and n respe...
  • wangxiaojun911
  • wangxiaojun911
  • 2014年02月06日 03:32
  • 6354
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Search in Rotated Sorted Array
举报原因:
原因补充:

(最多只允许输入30个字)