Description
WLD likes playing with numbers. One day he is playing with
Input
There are Multiple Cases. (At MOST
For each case:
The first line contains one integer
The second line contains
The third line contains one integer
Output
For each case:
Print one integer. It denotes the maximum of different numbers remain after the deletion.
Sample Input
4
1 3 1 2
1
Sample Output
3
Hint
if WLD deletes a 3, the numbers remain is [1,1,2],he’ll get 2 different numbers. if WLD deletes a 2, the numbers remain is [1,1,3],he’ll get 2 different numbers. if WLD deletes a 1, the numbers remain is [1,2,3],he’ll get 3 different numbers.
題意:輸出一個n 然後輸入一個 長度爲n的數組,然後輸入一個k ,如果k大於這個數組裏面數字重複的數字就輸出
System.out.println(n -num- (k - num));//num是數組不同數字的數字
反之直接輸出這個數組的不同數字的個數
思路: 貪心 水題
import java.util.Scanner;
public class Main{
private static int n = 0, k = 0, num = 0;
private static int[] array;
private static int[] resArray;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
num = 0;
n = scanner.nextInt();
array = new int[n];
resArray = new int[n];
for (int i = 0; i < n; i++) {
int temp = scanner.nextInt();
if (judge(temp)) {
array[i] = temp;
} else {
resArray[i] = temp;
num++;
}
}
k = scanner.nextInt();
if (k <= num) {
System.out.println(n - num);
} else {
System.out.println(n -num- (k - num));
}
}
scanner.close();
}
private static boolean judge(int x) {
for (int i = 0; i < array.length; i++) {
if (array[i] == x) {
return false;
}
}
return true;
}
}