明日方舟游戏资源库:从数据解析到创意开发的技术实践指南
2026/4/28 0:20:47
题目:每日温度 点击跳转
classSolution{publicint[]dailyTemperatures(int[]temperatures){int[]answer=newint[temperatures.length];for(inti=0;i<temperatures.length;i++){for(intj=i+1;j<temperatures.length;j++){if(temperatures[j]>temperatures[i]){answer[i]=j-i;//核心break;}}}returnanswer;}}找右边第一个比当前元素大的元素
栈里保存的是:还没有找到更高温度的天的下标
当今天的温度 temperatures[i] 比栈顶那天更高时,说明:
今天就是栈顶那天等到的更高温度当前温度比栈顶那天高 → 说明那天终于等到了更高温度
stack.push(i)//把下标 i 放进栈里stack.pop()//把栈顶元素取出来,并删除stack.peek()//查看栈顶元素,但不删除stack.isEmpty()//判断栈是不是空的classSolution{publicint[]dailyTemperatures(int[]temperatures){intn=temperatures.length;int[]answer=newint[n];Stack<Integer>stack=newStack<>();//放下标for(inti=0;i<n;i++){while((!stack.isEmpty())&&(temperatures[i]>temperatures[stack.peek()])){intj=stack.pop();answer[j]=i-j;}stack.push(i);}returnanswer;}}