关注
最少几道题的,你们的思路呢?
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);
}
}
查看原帖
点赞 评论
相关推荐
2025-12-26 10:52
河北传媒学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
12685次浏览 163人参与
# 实习教会我的事 #
59687次浏览 455人参与
# 牛客AI体验站 #
17619次浏览 298人参与
# 最难的技术面是哪家公司? #
66356次浏览 984人参与
# 当你面对裁员会如何? #
367127次浏览 2924人参与
# 职场上哪些行为很加分? #
328078次浏览 3634人参与
# 一张图晒一下你的AI员工 #
14312次浏览 178人参与
# 面试之前应该如何准备? #
219691次浏览 2331人参与
# 找不到实习会影响秋招吗 #
1447497次浏览 13730人参与
# 哪些公司对双非友好 #
208111次浏览 1171人参与
# 九月了,是考研还是就业? #
88761次浏览 549人参与
# 找实习是选平台还是选业务? #
45334次浏览 317人参与
# 实习怎么做才有更好的产出 #
33145次浏览 420人参与
# 第一次面试 #
1073566次浏览 13740人参与
# 这份实习,有没有动摇过你的职业方向? #
1648次浏览 21人参与
# 为了实习逃课值吗? #
66156次浏览 528人参与
# 工作中,努力重要还是选择重要? #
261985次浏览 2475人参与
# 毕业季,给职场新人一些建议 #
189439次浏览 2484人参与
# 拿到offer之后,可以做些什么 #
90853次浏览 461人参与
# 本周投递记录 #
848809次浏览 12229人参与
查看20道真题和解析