关注
最少几道题的,你们的思路呢?
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);
}
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 哪些AI项目值得做? #
8434次浏览 271人参与
# 市场营销人求职交流聚集地 #
208112次浏览 1271人参与
# 华泰星战营,提前锁定校招offer #
10381次浏览 339人参与
# 实习时最怕听到的一句话 #
7878次浏览 98人参与
# 机械人还在等华为开奖吗? #
333139次浏览 1618人参与
# 找不到大厂实习可以去小厂吗? #
8057次浏览 59人参与
# 没有面试的日子里,你在做什么 #
6109次浏览 143人参与
# 拼多多工作体验 #
57414次浏览 399人参与
# 简历上如何体现你的“AI”能力? #
4628次浏览 103人参与
# 你总挂在第__面? #
3249次浏览 38人参与
# 你知道最慷慨和最抠的公司分别是 #
5835次浏览 49人参与
# 你简历上最心虚的一句话 #
11652次浏览 74人参与
# 26届的你们有几段实习? #
178635次浏览 1110人参与
# 机械笔面试考察这些知识点 #
18476次浏览 142人参与
# 嵌入式岗知多少 #
73046次浏览 580人参与
# 产品每日一题 #
96646次浏览 711人参与
# 快消秋招求职进展汇总 #
11866次浏览 43人参与
# 实习最晚的一次下班是几点 #
34669次浏览 169人参与
# 我们是不是被“优绩主义”绑架了? #
46616次浏览 543人参与
# 找工作的破防时刻 #
291165次浏览 2070人参与
# 锐捷网络求职进展汇总 #
9379次浏览 29人参与
查看6道真题和解析