用递减栈做;把(下标值,数组值)存入栈,每次来新元素的时候都与栈顶元素比较,如果比栈顶的数组值打的话,就找到了离栈顶元素最近的比它大的值。
class Solution: def dailyTemperatures(self, T: List[int]) -> List[int]: d=[0]*len(T) stack = [] for i in range(0,len(d)): while stack and T[i]>stack[-1][1]: nums = stack.pop() d[nums[0]] = i-nums[0] stack.append((i,T[i])) return d