关注
第三题我完全参考了檐之同学的思路,可以把算法复杂度从O(n2)降到O(n)。附上原作者的链接:https://www.nowcoder.com/discuss/226305?type=post&order=time&pos=&page=1 申请两个数组,lookBackward[i]表示向坐标递减的方向看时,在i位置能看到的楼的个数;lookForward[i]表示向坐标递增的方向看时,在i位置能看到的楼的个数。用栈的size记录楼的个数,若栈顶楼高小于等于当前遍历到的楼高则pop栈顶,否则直接push新楼。 很巧妙的地方是,计算lookBackward数组时从前往后遍历,计算lookForward数组时从后向前遍历,这样刚刚分析的逻辑才成立。最后记得算上当前楼,输出+1。代码如下: import java.util.Scanner;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = sc.nextInt();
}
int[] lookBackward = new int[n];
int[] lookForward = new int[n];
int[] results = new int[n];
Deque<Integer> stack = new ArrayDeque<>();
stack.push(nums[0]);
for(int i = 1; i < n; i++){
lookBackward[i] = stack.size();
if(!stack.isEmpty() && nums[i] >= stack.peek()){
stack.pop();
}
stack.push(nums[i]);
}
stack.clear();
stack.push(nums[n-1]);
for(int i = n-2; i >= 0; i--){
lookForward[i] = stack.size();
if(!stack.isEmpty() && nums[i] >= stack.peek()){
stack.pop();
}
stack.push(nums[i]);
}
for(int i=0; i < n; i++){
results[i] = lookBackward[i] + lookForward[i] + 1;
System.out.print(results[i] + " ");
}
}
}
查看原帖
点赞 3
牛客热帖
更多
- 1... 本科四段大厂实习,暑期五个offer,我的暑期结束了,秋招前集邮atmd、上海四毒2.6W
- 2... 一文讲清新手到底要不要写《苍穹外卖》和《黑马点评》?6173
- 3... 节后上班第一天,我的精神状态be like……5418
- 4... 黑马点评大总结4664
- 5... Java后端5月还会有机会吗3343
- 6... 实习/试用期转正,如何写好答辩文档?2691
- 7... 实习工资3500还这么拽?提问就被说“没态度”,这家公司挺离谱2084
- 8... 拼多多PDD-5.5服务端研发实习生二面面经1961
- 9... 拼多多信息确认1897
- 10... 只有真正上战场了,才知道自己多菜!1845
正在热议
更多
# 你上一次加班是什么时候? #
49036次浏览 345人参与
# 学历or实习经历,哪个更重要 #
94234次浏览 681人参与
# 深信服求职进展汇总 #
177486次浏览 1663人参与
# 大疆求职进展汇总 #
477728次浏览 3190人参与
# 如何排解工作中的焦虑 #
149462次浏览 1749人参与
# 实习要如何选择和准备? #
54624次浏览 903人参与
# 秋招签约后的心态变化 #
73724次浏览 790人参与
# 牛友打假中心 #
82144次浏览 2633人参与
# 摸鱼被leader发现了怎么办 #
49332次浏览 323人参与
# 秋招最大的收获是什么? #
24103次浏览 275人参与
# 秋招想进国企该如何准备 #
50051次浏览 350人参与
# 找工作,行业重要还是岗位重要? #
26716次浏览 443人参与
# 你觉得通信/硬件有必要实习吗? #
99206次浏览 895人参与
# 租房找室友 #
14155次浏览 101人参与
# 生化医药面经大本营 #
99578次浏览 466人参与
# 多益网络求职进展汇总 #
21465次浏览 126人参与
# 潍柴工作体验 #
24349次浏览 18人参与
# 你最满意的offer薪资是哪家公司? #
22565次浏览 120人参与
# 来聊聊机械薪资天花板是哪家 #
116920次浏览 721人参与
# 实习工作,你找得还顺利吗? #
400218次浏览 5530人参与