关注
package BISHI; import java.util.Arrays; import java.util.Scanner; /** * 合唱队的N名学生站成一排且从左到右编号为1到N,其中编号为i的学生身高为Hi。 现在将这些学生分成若干组(同一组的学生编号连续), * 并让每组学生从左到右按身高从低到高进行排列,使得最后所有学生同样满足从左到右身高 从低到高(中间位置可以等高),那么最多能将这些学生分成多少组? * 合唱队的N名学生站成一排且从左到右编号为1到N,其中编号为i的学生身高为Hi。 现在将这些学生分成若干组(同一组的学生编号连续), * 并让每组学生从左到右按身高从低到高进行排列,使得最后所有学生同样满足从左到右身高从低 到高(中间位置可以等高),那么最多能将这些学生分成多少组? * 第一行包含一个整数N,1≤N≤10^5。 * * 第二行包含N个空格隔开的整数H1到HN,1≤Hi≤10^9。 4 2 1 3 2 * * @author gary * */ public class test4 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = scanner.nextInt(); int[] a = new int[n]; int[] b = new int[n]; for (int i = 0; i < a.length; i++) { a[i] = scanner.nextInt(); b[i] = a[i]; } Arrays.sort(b); int ans = 0; int cha = 0; int index = 0; for (int i = 0; i < b.length; i++) { if (a[i] == b[i]) { ans++; } else { if (cha == 0) { index = i; // System.out.println(index); } for (int j = index; j < b.length; j++) { if (a[i] == b[j]) { System.out.println(j-i); cha += j - i; if (cha == 0) { ans+=i-index+1; } break; } } } } System.out.println(ans); } } }
查看原帖
点赞 3
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 工作中哪个瞬间让你想离职 #
28360次浏览 197人参与
# 在职场上,你最讨厌什么样的同事 #
16269次浏览 162人参与
# 选了这个offer,你有没有后悔? #
592971次浏览 4028人参与
# 小米硬件提前批进度交流 #
171099次浏览 1528人参与
# 哪些公司校招卡第一学历 #
74271次浏览 300人参与
# 机械人,秋招第一次笔试的企业是哪家? #
41102次浏览 326人参与
# 担心入职之后被发现很菜怎么办 #
139285次浏览 808人参与
# 入职以后才知道的校招谎言 #
88983次浏览 587人参与
# 华子oc时间线 #
1244987次浏览 6487人参与
# Offer比较,你最看重什么? #
192128次浏览 1309人参与
# 哪些公司开提前批了? #
29715次浏览 276人参与
# 风评不好的公司,你会去吗? #
65721次浏览 463人参与
# 两会劳动法放大招 #
76701次浏览 692人参与
# 实习如何「偷」产出? #
55726次浏览 1389人参与
# 职场常用语录大全 #
4053次浏览 30人参与
# 不卡学历的大厂有哪些? #
32452次浏览 245人参与
# 校招阶段,学历VS技术哪个更重要? #
19314次浏览 200人参与
# 机械人春招想让哪家公司来捞你? #
349549次浏览 3088人参与
# 除了主业以外,你还有哪些其他收入? #
13457次浏览 203人参与
# 工作丧失热情的瞬间 #
294406次浏览 2373人参与