人生第一面 字節跳動
問的這個題
頭腦混亂當時沒做出來 今天寫了
面試題:在一個int數組裏查找這樣的數,它大於等於左側所有數,小於等於右側所有數 返回下標
思路:開數組遍歷數組,保存當前最小值最大值;然後第二遍遍歷的時候直接判斷這個數啊是不是比左邊最大值大、右邊最小值都小就行
def find_the_n(L): n = len(L) flag1=[0 for i in range(n)] flag2=[0 for i in range(n)] res=[] min_,max_=L[-1],L[0] for i in range(n): if L[i]>=max_: max_=L[i] if L[n-i-1]<=min_: min_=L[n-i-1] flag1[i]=max_ flag2[n-i-1]=min_ for i in range(n): if L[i]>=flag1[i] and L[i]<=flag2[i]: res.append(L[i]) return res list1=[21, 11, 45, 56, 9, 66, 77, 89, 78, 68, 100, 120, 111] print(find_the_n(list1))