某超市有一种促销手段,购买金额超过一定阈值就随机给一个贴花。贴花有不同种类的,种类以编号表示,编号是一个1到100之间的数字。当收集到连续编号的三张贴花时,就可以换一个小礼物。
小明经常去某超市购物,积攒了不少贴花,你帮他看看,能换多少小礼物。
输入格式:
首先是一个正整数N(1<N<100),表示小明手上的贴花的数量。
然后是N个正整数Pi(1⩽Pi⩽1000,每个数字表示一张贴花的编号。
输出格式:
输出一个数字,表示小明可以换的小礼物的数量。如果不能换小礼物,就输出0
。
输入样例:
6
3 2 4 6 6 4
输出样例:
1
2 3 4是一个组合,之后剩下的4 6 6不是连续的编号
注意:如果有1 2 3 4 5 6这六张贴花,可以组成4个连续的编号组合,但是只能兑换两次;
如果不能换小礼物,输出的是字符0,而不是数字0。
代码如下:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
int n = sca.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sca.nextInt();
}
Arrays.sort(arr);
int count = 0;
for (int k = 0; k < n - 2; ) {
if (arr[k] != 0 && arr[k + 1] - arr[k] == 1 && arr[k + 2] - arr[k + 1] == 1) {
count++;
k += 3;
}
else
k++;
}
if (count == 0) {
System.out.println("0");
} else
System.out.println(count);
}
}
PTA提交结果: