关注
最少几道题的,你们的思路呢?
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);
}
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
06-13 01:23
中南民族大学 嵌入式软件开发 点赞 评论 收藏
分享
05-25 12:52
中国石油大学(华东)青岛校区 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习生的蛐蛐区 #
56453次浏览 419人参与
# 运营面经 #
115798次浏览 1251人参与
# 你认为小厂实习有用吗? #
21552次浏览 254人参与
# 说说你知道的学历厂 #
40500次浏览 245人参与
# 应届生,你找到工作了吗 #
21743次浏览 154人参与
# 你的领导最像哪种动物,为什么? #
14570次浏览 107人参与
# 三一重工求职进展汇总 #
13501次浏览 62人参与
# 材料人,你们签了哪个公司 #
7551次浏览 18人参与
# 哪一瞬间觉得自己长大了 #
10451次浏览 233人参与
# 计算机有哪些岗位值得去? #
17395次浏览 161人参与
# 面试尴尬现场 #
33365次浏览 224人参与
# 你找工作的时候用AI吗? #
19367次浏览 236人参与
# 下班后的时间你怎么安排 #
10614次浏览 142人参与
# 烟草笔面经互助 #
17885次浏览 184人参与
# 硬件人秋招的第一个offer #
80241次浏览 1154人参与
# 社会教会你的第一课 #
37640次浏览 470人参与
# 秋招最大的收获是什么? #
36153次浏览 309人参与
# 电网笔面经互助 #
36958次浏览 359人参与
# 中核求职进展汇总 #
20801次浏览 153人参与
# lastday知无不言 #
58448次浏览 475人参与