[英]Searching an array for certain number of integers greater than one integer
I have written this method to find the number of values that are greater than a specific value in an array and it works with arrrays that have positive integers but when I tried this test case it failed. 我已经编写了此方法来查找大于数组中特定值的值的数量,并且该方法适用于具有正整数的Arrray,但是当我尝试此测试用例时,它失败了。
public static int numGreater(int[] a, int val) {
if (a == null || a.length == 0) {
throw new IllegalArgumentException();
}
int[] copy = Arrays.copyOf(a, a.length);
Arrays.sort(copy);
int answer = 0;
int nearest = copy[0];
for (int i = 0; i < copy.length; i++) {
if (Math.abs(nearest - val) > Math.abs(copy[i] - val)) {
nearest = copy[i];
answer = (copy.length - 1) - i;
}
}
return answer;
}
Here is the test case I ran with JUnit. 这是我与JUnit一起运行的测试用例。
int z[] = {-5,-2,0,4,8,15,50};
@Test public void numGreaterTest1() {
Assert.assertEquals(7, Selector.numGreater(z, -99));
}
Any ideas on where I went wrong? 关于我哪里出了错的任何想法?
public static int numGreater(int[] a, int val) {
if (a == null || a.length == 0) {
throw new IllegalArgumentException();
}
int answer = 0;
for (int i = 0; i < a.length; i++) {
if (a[i]>val) {
answer++;
}
}
return answer;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.