首页 > 试题广场 >

元素查找

[编程题]元素查找
  • 热度指数:8808 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

给定一个数组A及其大小n,同时给定需要查找的元素值x,已知数组A是由一个排过序的数组向左移位了一定长度得到的,请返回x在现数组的位置(位置从零开始)。保证数组中元素互异。

测试样例:
[6,1,2,3,4,5],6,6
返回:0
# -*- coding:utf-8 -*-

class Finder:
    def findElement(self, A, n, x):
        # write code here
        return A.index(x)
发表于 2017-10-07 14:19:17 回复(0)
# -*- coding:utf-8 -*-

class Finder:
    def findElement(self, A, n, x):
        # write code here
        if n<1:
            return -1
        l=0
        r=n-1
        while l<=r:
            mid=(l+r)/2
            if A[mid]==x:
                return mid
            elif A[mid]<x:
                if A[l]>A[mid] and x>A[r]:
                    r=mid-1
                else:
                    l=mid+1
            else:
                if A[l]>x and A[l]<A[mid]:
                    l=mid+1
                else:
                    r=mid-1
        return -1

发表于 2017-07-15 16:14:50 回复(0)