关注
排下序就可以了,用的是归并排序,完了才发觉可以用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);
}
}
}
查看原帖
点赞 1
相关推荐
牛客85586392...:就团子这base 拉完了还top 点赞 评论 收藏
分享
12-18 18:07
浙江大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你小心翼翼的闯过多大的祸? #
1371次浏览 42人参与
# 考研人,我有话说 #
156360次浏览 1211人参与
# 实习没事做是福还是祸? #
1589次浏览 27人参与
# 找不到实习会影响秋招吗 #
1398834次浏览 13627人参与
# 2025年终总结 #
129004次浏览 2170人参与
# 实习简历求拷打 #
21028次浏览 228人参与
# 哪些公司笔/面试难度大? #
6958次浏览 31人参与
# 携程工作体验 #
18789次浏览 66人参与
# 投格力的你,拿到offer了吗? #
154313次浏览 829人参与
# 秋招遇到的奇葩面试题 #
101164次浏览 416人参与
# 你觉得现在还能进互联网吗? #
29840次浏览 200人参与
# 简历当中有水分算不算造假? #
154204次浏览 2250人参与
# 作业帮求职进展汇总 #
84919次浏览 559人参与
# 秋招被挂春招仍然能投的公司 #
8713次浏览 110人参与
# 扒一扒那些奇葩实习经历 #
139997次浏览 1148人参与
# 正在实习的你,有转正机会吗? #
465628次浏览 3062人参与
# mt对你说过最有启发的一句话 #
41328次浏览 466人参与
# 秋招被确诊为…… #
277082次浏览 1583人参与
# 国庆前的秋招小结 #
265740次浏览 1718人参与
# 信也科技工作体验 #
13488次浏览 39人参与
