739. Daily Temperatures - LeetCode
生活随笔
收集整理的這篇文章主要介紹了
739. Daily Temperatures - LeetCode
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Question
739.?Daily Temperatures
Solution
題目大意:比今天溫度還要高還需要幾天
思路:笨方法實現,每次遍歷未來幾天,比今天溫度高,就坐標減
Java實現:
public int[] dailyTemperatures(int[] temperatures) {int[] ans = new int[temperatures.length];for (int i = 0; i<temperatures.length; i++) {int highIdx = i;for (int j=i+1; j<temperatures.length; j++) {if (temperatures[j] > temperatures[i]) {highIdx = j;break;}}ans[i] = highIdx - i;}return ans; }Ref
別人實現高效的方法
https://leetcode.com/problems/daily-temperatures/discuss/109832/Java-Easy-AC-Solution-with-Stack
Stack
public int[] dailyTemperatures(int[] temperatures) {Stack<Integer> stack = new Stack<>();int[] ret = new int[temperatures.length];for(int i = 0; i < temperatures.length; i++) {while(!stack.isEmpty() && temperatures[i] > temperatures[stack.peek()]) {int idx = stack.pop();ret[idx] = i - idx;}stack.push(i);}return ret; }Array
public int[] dailyTemperatures(int[] temperatures) {int[] stack = new int[temperatures.length];int top = -1;int[] ret = new int[temperatures.length];for(int i = 0; i < temperatures.length; i++) {while(top > -1 && temperatures[i] > temperatures[stack[top]]) {int idx = stack[top--];ret[idx] = i - idx;}stack[++top] = i;}return ret; }轉載于:https://www.cnblogs.com/okokabcd/p/9388225.html
總結
以上是生活随笔為你收集整理的739. Daily Temperatures - LeetCode的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【大数据搜索引擎】网络爬虫南华实验报告(
- 下一篇: W4_python_decorator_