问题描述
小U在一款挂机游戏中拥有n个英雄。游戏中有一种历练升级机制,每天可以选择两个英雄进行历练,如果两位英雄的等级相同,则他们的等级都不会改变。如果英雄等级不同,那么等级较高的英雄会增加1级,而等级较低的英雄则保持不变。
小U希望至少有一个英雄能够达到2000000000000000级,他想知道有多少英雄有潜力通过历练达到这个等级。
测试样例
样例1:
输入:
n = 5 ,u = [1, 2, 3, 1, 2]
输出:
3
样例2:
输入:
n = 4 ,u = [100000, 100000, 100000, 100000]
输出:
0
样例3:
输入:
n = 6 ,u = [1, 1, 1, 2, 2, 2]
输出:
3
我的题解:
java
import java.util.Arrays;
public class Main {
public static int solution(int n, int[] u) {
//感觉不太对的样子,找到最小的数比其高的数有多少个
int min = Integer.MAX_VALUE;
//找到最小值
for(int i = 0; i < u.length; i++ ){
min = u[i] < min ? u[i] : min;
}
//找到比其大的数有多少个
int count = 0;
for(int target : u){
count += target > min ? 1 : 0;
}
return count;
}
public static void main(String[] args) {
System.out.println(solution(5, new int[]{1, 2, 3, 1, 2}) == 3);
System.out.println(solution(4, new int[]{100000, 100000, 100000, 100000}) == 0);
System.out.println(solution(6, new int[]{1, 1, 1, 2, 2, 2}) == 3);
}
}
没问题,评级标签为难题,不理解呦......我也是做出难题的人了