美文网首页
旋转有序数组

旋转有序数组

作者: 路人乙yh | 来源:发表于2020-06-15 11:48 被阅读0次

旋转有序数组:ll = [15,16,19,20,25,1,3,4,5,7,10,14]
使用二分查找,分三种情况处理

list[m] == item   return
list[m] <= list[right] 右侧有序,如果alist[m]<item <= alist[right],则left=m+1,else right = m-1
list[m]>list[left] 左侧有序,如果alist[left]<= item < alist[m],则right = m-1,else left = m+1

代码如下


# 旋转有序数组
ll = [15,16,19,20,25,1,3,4,5,7,10,14]

class Solution(object):
    def func(self, alist, item):
        n = len(alist)
        found = False
        index = -1
        left = 0
        right = n-1
        while left <= right and not found:
            m = (left + right) // 2
            if item == alist[m]:
                found = True
                index = m
            elif alist[m] <= alist[right]:
                if alist[m] < item and item <= alist[right]:
                    left = m + 1
                else:
                    right = m - 1
            else:
                if alist[left] <= item and item < alist[m]:
                    right = m - 1
                else:
                    left = m + 1
        return index
s = Solution()
s.func(ll, 15)

相关文章

  • 旋转有序数组

    旋转有序数组:ll = [15,16,19,20,25,1,3,4,5,7,10,14]使用二分查找,分三种情况处...

  • 旋转数组的最小值

    旋转数组的最小值 所谓旋转数组,即是递增有序数组旋转右移动若干位得到的数组,这里的右移和java里的>>>有点不同...

  • 搜索旋转有序数组

    描述Suppose a sorted array is rotated at some pivot unknown...

  • 剑指offer读书笔记一

    一、 旋转数组(数组开始有序),寻找最小数。(比如0,1,2,3,4,5,6可以旋转为4,5,6,0,1,2,3等...

  • 搜索旋转数组

    搜索旋转数组 1.想法: 如果是拍好序的数组,那么直接使用二分查找进行搜索,现在旋转了后,我们可知至少有两段是有序...

  • LeetCode 力扣 81. 搜索旋转排序数组 II

    题目描述(中等难度) 33题的升级版,数组的操作没有变,所谓的旋转数组,就是把有序数组前边若干个数字移动到末尾。区...

  • leetcode 33 搜索旋转排序数组

    leetcode 33 搜索旋转排序数组 第一次题解 思路:将数组分为两份,左边的数组可能是有序的可能是无须的,通...

  • 力扣 33 搜索旋转排序数组

    题意:给定一个有序无重复数组,数组被旋转移动了几个位置,在数组中找到指定的数 思路: 设定首尾指针 每次二分查找时...

  • 【每日一算】旋转有序数组

    在旋转有序数组中找出给定的一个整数,并返回该整数在数组中的下标? 解题思路: 假设最左边下标用left标识,最右边...

  • [剑指offer]08-旋转数组的最小数字

    旋转数组的最小数字 题目 给定一个递增的旋转数组A,返回旋转数组中的最小值。旋转数组:给定一个已排序的数组,假设为...

网友评论

      本文标题:旋转有序数组

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