python最大數的下標 演算法 最大下標差

2021-10-16 23:13:46 字數 1166 閱讀 8474

題目:

given an array arr, find the maximum j – i such that arr[j] > arr[i]

乙個陣列,找出最大下標差j-i,且a[i]

分析:i必定在以第乙個元素開始的降序列中(可以採用反正發證明:假設存在最大下標距離的兩個下標i和j,i

python **:

# -*- coding: utf-8 -*-

from random import randint

#generate a unsorted list

origin =

def randomlist():

for i in xrange(0,10,1):

print origin

return origin

def maxspan(data):

lmin =

rmax =

temp = data[0]

for i in xrange(1,len(data)):

if data[i] < temp:

temp = data[i]

else:

pass

length = len(data)

temp = data[length-1]

for i in xrange(length-2,-1,-1):

if data[i] > temp:

rmax.insert(0,i)

temp = data[i]

else:

pass

i,j = 0,0

result = 0

while i < len(lmin) and j < len(rmax):

if data[lmin[i]] < data[rmax[j]]:

# print data[lmin[i]],data[rmax[j]],lmin[i],rmax[j]

result = result if result > (rmax[j]-lmin[i]) else (rmax[j]-lmin[i])

j += 1

else:

i += 1

print result

if __name__ == "__main__":

maxspan(randomlist())

演算法 最大數

給定一組非負整數,重新排列它們的順序使之組成乙個最大的整數。示例 1 輸入 10,2 輸出 210 示例 2 輸入 3,30,34,5,9 輸出 9534330 說明 輸出結果可能非常大,所以你需要返回乙個字串而不是整數。1 將輸入的整數陣列變成字串陣列 2 完成字串數字之間的比較,a b b a ...

python排列最大數

編寫乙個python指令碼,使得其實現以下功能 該指令碼如下所示 def bigger x,y if x y return x else return y defmax list return reduce bigger,list num input please input the number ...

Leetcode 最大數 Python實現

題目 最大數 給定一組非負整數,重新排列它們的順序使之組成乙個最大的整數。示例 輸入 10,2 輸出 210 輸入 3,30,34,5,9 輸出 9534330 說明 輸出結果可能非常大,所以你需要返回乙個字串而不是整數。思路 通過對題目的分析,可以想到的是先比較每個元素的第乙個字元,然後第二個字元...