纪念品分组java_纪念品分组 ——易懂、简介、技巧(Java代码)
我的思路:
1、先排序
2、兩層循環嵌套,外面的一層從數組末尾開始,里面一層從頭開始遍歷,首先滿足的條件就是這兩個數都不能是 NULL 的,并且兩個物品的價值加起來不大于最大價值,都滿足之后就把兩個物品都賦值為 NULL 表示能放入同一個組,sum + 1 計數并跳出循環,因為都為空了表示里面循環沒必要繼續進行下去;
3、當里面的循環遍歷完成以后需要進行判斷,因為有可能當里面的循環遍歷之后沒有能和它匹配的那么就只能把當前分一個組,賦值為 NULL 并 sum+1。
#####算是比較簡潔的過程,思路也比較簡單
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int max = sc.nextInt();
int num = sc.nextInt();
//創建數組保存值
Integer[] arr = new Integer[num];
for (int i = 0; i < num; i++) {
arr[i] = sc.nextInt();
}
//排序
Arrays.sort(arr);
int sum = 0;
//外層循環
for (int i = arr.length - 1; i >= 0; i--) {
//內層循環
for (int j = 0; j < arr.length; j++) {
//兩個值都不為空并且兩個值加起來不大于最大值
if (arr[j] != null && arr[i] != null && arr[i] + arr[j] <= max) {
arr[i] = null;
arr[j] = null;
sum++;
break;
}
}
//如果沒有匹配的值就單獨分一組
if(arr[i] != null) {
arr[i] = null;
sum++;
}
}
System.out.println(sum);
}
}
0.0分
1 人評分
總結
以上是生活随笔為你收集整理的纪念品分组java_纪念品分组 ——易懂、简介、技巧(Java代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eabservr.exe是什么进程 ea
- 下一篇: java seteditable,Jav