博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
739. Daily Temperatures - LeetCode
阅读量:4309 次
发布时间:2019-06-06

本文共 1222 字,大约阅读时间需要 4 分钟。

Question

2018-07-29_232516.png

Solution

题目大意:比今天温度还要高还需要几天

思路:笨方法实现,每次遍历未来几天,比今天温度高,就坐标减

Java实现:

public int[] dailyTemperatures(int[] temperatures) {    int[] ans = new int[temperatures.length];    for (int i = 0; i
temperatures[i]) { highIdx = j; break; } } ans[i] = highIdx - i; } return ans;}

Ref

别人实现高效的方法

Stack

public int[] dailyTemperatures(int[] temperatures) {    Stack
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

你可能感兴趣的文章
mysql之引擎、Explain、权限详解
查看>>
推荐-zabbix原理篇
查看>>
160809329 仲兆鹏 3
查看>>
HDOJ1013【Digital Roots】
查看>>
HDOJ1078 FatMouse and Cheese【动态规划】-----武科大ACM暑期集训队选拔赛2题
查看>>
zoj 1492(最大团)
查看>>
利用redis中列表数据类型构建共享消息队列
查看>>
解决“"连接池已满"”
查看>>
网络爬虫2:使用crawler4j爬取网络内容
查看>>
POI导出
查看>>
javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印...
查看>>
java基础程序题
查看>>
Linux下安装http访问的svn
查看>>
Vue Router过渡动效
查看>>
RT600 ROM Boot流程
查看>>
tarjan算法
查看>>
二叉树
查看>>
CozyRSS开发记录17-Html2Xaml
查看>>
使用pygal 做chart图的经验分享
查看>>
内存泄露调试之 visual leak detector 工具【转】...
查看>>