9.21今日头条两道笔试有全AC代码么?求代码?

如题,我两道都AC 30%,菜的抠脚。。。
全部评论
排下序就可以了,用的是归并排序,完了才发觉可以用Sort排序的。。。 public class JR2 { public static void main(String[] args){ Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] arr = new int[n]; for(int i = 0; i < n; i++){ arr[i] = in.nextInt(); } System.out.println(solution(arr)); } public static int solution(int[] arr) { mergeSort(arr, 0, arr.length - 1); int count = 0; int flag = 1; for (int i = 0; i < arr.length - 1; i++) { if (Math.abs(arr[i] - arr[i + 1]) <= 10) { if (flag == 3) { flag = 1; } else { flag += 1; } } else { if (flag == 3) { flag = 1; } else { count += 3 - flag; flag = 1; } } } if (flag!=3){ count+=3-flag; } return count; } public static void merge(int[] arr, int low, int mid, int height) { int i = low; int j = mid + 1; int k = 0; int[] temp = new int[height - low + 1]; while (i <= mid && j <= height) { if (arr[i] <= arr[j]) { temp[k++] = arr[i++]; } else { temp[k++] = arr[j++]; } } while (i <= mid) { temp[k++] = arr[i++]; } while (j <= height) { temp[k++] = arr[j++]; } for (int m = 0; m < temp.length; m++) { arr[low + m] = temp[m]; } } public static void mergeSort(int[] arr, int low, int height) { if (low < height) { int mid = (low + height) / 2; mergeSort(arr, low, mid); mergeSort(arr, mid + 1, height); merge(arr, low, mid, height); } } }
点赞 回复 分享
发布于 2016-09-21 21:20

相关推荐

从24年初开学开始接触到前端,和实验室几个同学一起学习,可似乎我总比他们慢一步,每每学完一个地方,我掌握的程度好像都不比他们,第一次实验室的任务实战,我两眼一抹黑,完全不知道从何下手,而他们却是游刃有余,可我当时没有丧气,只有一个念头,既然学习能力不如他们,那我就拿更多的时间去学,于是我把打游戏,运动锻炼的时间也拿来学习。到了暑假,实验室一起做项目,为了可以更好的参与进去,于是我暑假开始留校和同学师哥一起做项目,每天早上九点多去实验室,晚上十点多回宿舍,校田径队的训练没有去,中间也只回家待了一周。到暑假结束开学之后,一位很优秀的师哥拿到了几个offer,我从他身上看到了希望,双非本科就业的希望...
offer求求哩:我的评价是认知低,建议多看书,认知低的一个表现是人生仿佛没考上大学就是进厂,考上了就是考研考公找工作。股市里有一个很有意思的故事,说的是当门口大妈都在谈论股票的时候,说明行情已经见顶了。当你的父母在某些事上没有成功却支持你说明事情可能已经不可靠了,但在某些事上反对你,说明这件事可能还有成功的可能。(仅个人观点)😆😆
点赞 评论 收藏
分享
头像
2024-12-20 09:39
中华女子学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务