关注
第三题我完全参考了檐之同学的思路,可以把算法复杂度从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
相关推荐
苦也:佬投的是日常实习吗,是在官网投的吗,我也想找段实习沉淀一下,投了根本没消息
点赞 评论 收藏
分享
10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 双9Java0基础➡秋招4×大厂offer,这一年我到底干了什么?5456
- 2... 要不是有我,你们早就在一起了3344
- 3... 【奖】别再瞎猜!26校招真实薪资大揭秘,帮你快速避坑!3242
- 4... 我父母让我忍受所有工作上的欺辱3141
- 5... 进大厂是因为老家找不到工作3004
- 6... 快手员工自费给+2庆生?太带派了烙铁2857
- 7... 月薪多少才能过上"体面生活"1851
- 8... 27届学院本两段实习后的职业规划再思考1307
- 9... 秋招收尾 0offer如何备战大厂春招1287
- 10... 携程你倒是动一动呀1249
正在热议
更多
# 我的职场社死时刻 #
4895次浏览 73人参与
# 你最满意的offer薪资是哪家公司? #
51100次浏览 260人参与
# 腾讯音乐秋招 #
417553次浏览 4724人参与
# 职场中那些令人叹为观止的八卦 #
5196次浏览 75人参与
# 聊聊你的职场新体验 #
293392次浏览 1807人参与
# 月薪多少能在一线城市生存 #
87896次浏览 598人参与
# 小红书开奖了 #
8972次浏览 62人参与
# 中科曙光工作体验 #
4271次浏览 22人参与
# 那些年,我收到的‘奇葩’回复 #
2859次浏览 34人参与
# 秋招吐槽大会 #
28837次浏览 282人参与
# 租房前辈的忠告 #
270187次浏览 7161人参与
# 秋招你经历过哪些无语的事 #
3343次浏览 50人参与
# XX请雇我工作 #
4088次浏览 62人参与
# 你秋招最后悔的选择 #
4391次浏览 47人参与
# 假如你的老板掉河里,你的工作能为他做什么 #
38889次浏览 400人参与
# 你找工作想离家近 or 离家远? #
4666次浏览 81人参与
# 交通银行工作体验 #
20110次浏览 68人参与
# 京东工作体验 #
21038次浏览 120人参与
# 哪些公司开始补录了 #
4106次浏览 67人参与
# 你父母给过你哪些不靠谱的职场建议? #
5361次浏览 84人参与
# 如何拒绝/反向PUA #
81164次浏览 365人参与
# 谈薪时HR压价该怎么应对 #
241280次浏览 3299人参与
