关注
第一题思路:先对数组排序,然后遍历一遍,统计每个数字在排序树组中第一次出现的位置(数组元素重复时这个下标会出错),遍历结果记录在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); } }
查看原帖
点赞 评论
相关推荐
投递阿里巴巴等公司10个岗位 >
点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛客帮帮团来啦!有问必答 #
473466次浏览 8501人参与
# 找不到好工作选择GAP真的丢人吗 #
9259次浏览 93人参与
# 互联网没坑了,还能去哪里? #
345129次浏览 5502人参与
# 双非本科求职如何逆袭 #
183484次浏览 2716人参与
# 你想对下半年说点什么 #
5839次浏览 136人参与
# 投递实习岗位前的准备 #
543596次浏览 9842人参与
# 工作两年想退休了 #
12959次浏览 122人参与
# 2022届毕业生现状 #
294337次浏览 4172人参与
# 非技术薪资爆料 #
66474次浏览 968人参与
# 许愿池 #
69200次浏览 1496人参与
# 华为开奖那些事 #
656028次浏览 5731人参与
# 在找工作求抱抱 #
293118次浏览 5613人参与
# 非技术岗是怎么找实习的 #
67595次浏览 1322人参与
# 你的秋招进行到哪一步了 #
324030次浏览 6046人参与
# 没有实习经历,还有机会进大厂吗 #
283570次浏览 5930人参与
# 重来一次,我还会选择这个专业吗 #
79161次浏览 1221人参与
# 产品实习,你更倾向大公司or小公司 #
32762次浏览 511人参与
# 实习好累,可以辞职全力准备秋招吗 #
4271次浏览 82人参与
# 参加过提前批的机械人,你们还参加秋招么 #
9700次浏览 306人参与
# Offer比较,你最看重什么? #
44171次浏览 442人参与