华为od机考 第一道题
输入k,输出所有结果小于k的整数组合到一起的最少交换次数。组合一起是指符合条件的数字相邻,不是在数组位置相邻。
不算难,但我有些不理解题目,导致第一个样例的情况,没能全部通过用例,只通过了47%。这个题目该怎么理解?
当时提交的代码:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String str = sc.nextLine();
String[] arr = str.split(" ");
int k = sc.nextInt();
int x = 0;
int d = 0;
for(int i = 0; i < arr.length; i++){
int n = Integer.parseInt(arr[i]);
if(n < k){
x++;
}
if (n >= k) {
d++;
}
}
if(x == arr.length || d == arr.length){
System.out.println(0);
}else if(x > 0){
System.out.println(1); //这个就乱写了
}
}
}
}