題目:
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 說明 輸出結果可能非常大,所以你需要返回乙個字串而不是整數。思路 通過對題目的分析,可以想到的是先比較每個元素的第乙個字元,然後第二個字元...