关注
最少几道题的,你们的思路呢?
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);
}
}
查看原帖
点赞 评论
相关推荐
Wh1t3zZlo:我宣布这才是官解 另一篇题解是查看图片
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的2024牛客高光时刻 #
100605次浏览 1554人参与
# 互联网公司评价 #
328093次浏览 3509人参与
# 客路2025全球产研实习生招聘 #
76764次浏览 280人参与
# 被同事甩锅了怎么办 #
16026次浏览 90人参与
# 比亚迪求职进展汇总 #
635609次浏览 2977人参与
# 比亚迪秋招开啦,你打算投递吗? #
59262次浏览 517人参与
# 今年形式下双非本找得到工作吗 #
80997次浏览 715人参与
# 百度工作体验 #
173913次浏览 1759人参与
# 如果工作一直消耗情绪还要继续做吗 #
2906次浏览 35人参与
# 实习好累,可以辞职全力准备秋招吗 #
64284次浏览 856人参与
# 你认为工作的意义是什么 #
84539次浏览 719人参与
# 你的秋招第一场笔试是哪家 #
51319次浏览 614人参与
# 快手工作体验 #
170597次浏览 2236人参与
# 如果校招重来我最想改变的是 #
202268次浏览 2487人参与
# 2023毕业生求职有问必答 #
135799次浏览 1349人参与
# 工作中,努力重要还是选择重要? #
57853次浏览 567人参与
# 数字马力求职进展汇总 #
147040次浏览 1262人参与
# AI了,我在打一种很新的工 #
38182次浏览 783人参与
# 机械人,你的秋招第一份简历被谁挂了 #
122890次浏览 1900人参与
# 大学最后一个寒假,我想…… #
13393次浏览 148人参与
# 大家每天通勤多久? #
19742次浏览 156人参与