关注
第一题思路:先对数组排序,然后遍历一遍,统计每个数字在排序树组中第一次出现的位置(数组元素重复时这个下标会出错),遍历结果记录在index数组中,最后对index数组一遍遍历,用maxIndex保存当前最大的index,maxIndex表示当前数组中应当分为一组的最大下标,在i<maxIndex的过程中需要不断更新maxIndex,直到maxIndex等于遍历的位置i时,说明一个合法的子数组遍历完成。 例子: nums[] = {2,1,6,3,5,4},得到的index[] = {1, 0, 5, 2, 4, 3},第一个合法子数组应该到i=1的位置,第二个合法数组应该到i=5的位置。 AC只有64%,因为这种做法无法处理有重复数字的情况。 import java.util.ArrayList; import java.util.Scanner; public class JD1 { /* * 2 2 3 1 1 4 * */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); ArrayList<Integer> nums = new ArrayList<>(); int[] origin = new int[n]; int[] index = new int[n]; for(int i=0;i<n;i++) { int cur = scanner.nextInt(); origin[i] = cur; nums.add(cur); } nums.sort((o1,o2)->o1-o2); for(int i=0;i<n;i++) { index[i] = nums.indexOf(origin[i]); } int maxIndex = 0; int count = 0; for(int i=0;i<n;i++) { //if(maxIndex==index[i]) maxIndex+=1; maxIndex = Math.max(maxIndex, index[i]); if(maxIndex == i) count++; } System.out.println(count); } }
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
06-06 17:26
河南理工大学 底盘工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习收获 #
32749次浏览 513人参与
# 安利/避雷我的专业 #
73497次浏览 514人参与
# 实习吐槽大会 #
35475次浏览 164人参与
# 2025牛客秋招季 #
5377次浏览 164人参与
# 晒一晒你的工位 #
86451次浏览 307人参与
# 移动求职进展汇总 #
1620次浏览 17人参与
# 第一份工作应该选高薪还是热爱? #
61675次浏览 561人参与
# 我的租房踩坑经历 #
30861次浏览 312人参与
# 求职遇到的搞笑事件 #
113295次浏览 770人参与
# 我的国央企投递进展 #
43087次浏览 268人参与
# 26届秋招投递记录 #
4406次浏览 116人参与
# 穿越回高考你还会选现在的专业吗 #
23099次浏览 271人参与
# 地方国企笔面经互助 #
29979次浏览 98人参与
# 双非能在秋招上岸吗? #
215344次浏览 1144人参与
# 你后悔选择现在的专业吗 #
81772次浏览 670人参与
# 招银网络求职进展汇总 #
113278次浏览 741人参与
# 你觉得专业和学校哪个对薪资影响最大 #
57945次浏览 471人参与
# 毕业旅行去哪玩儿 #
1357次浏览 33人参与
# 如果有时光机,你最想去到哪个年纪? #
47268次浏览 800人参与
# 非技术岗简历怎么写 #
209899次浏览 2861人参与