关注
最少几道题的,你们的思路呢?
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);
}
}
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
12179次浏览 114人参与
# 机械人春招想让哪家公司来捞你? #
356768次浏览 3104人参与
# 为了求职,我做过的疯狂伪装 #
10140次浏览 160人参与
# 晒晒你的中秋福利 #
14663次浏览 91人参与
# 职场破冰,你们都聊什么? #
5625次浏览 57人参与
# 工作压力大怎么缓解 #
104672次浏览 1048人参与
# 机械人怎么评价今年的华为 #
208470次浏览 1524人参与
# 广联达求职进展汇总 #
10594次浏览 50人参与
# bilibili求职进展汇总 #
84103次浏览 773人参与
# 大家实习每天都在干啥 #
88586次浏览 517人参与
# 你面试被问到过哪些不会的问题? #
18117次浏览 714人参与
# 聊聊这家公司值得去吗 #
552556次浏览 3676人参与
# 实习要如何选择和准备? #
114393次浏览 1436人参与
# 秋招报数:你投了多少家公司? #
25811次浏览 259人参与
# 上班后和你想的一样吗? #
79069次浏览 630人参与
# 电网笔面经互助 #
46337次浏览 428人参与
# 秋招的嫡长offer #
24720次浏览 236人参与
# 你觉得早上几点上班合适? #
82225次浏览 329人参与
# 上班摸鱼,你都在干些什么? #
5871次浏览 102人参与
# 秋招OC许愿 #
345388次浏览 2521人参与