1. 程式人生 > >java中將一組人分兩組,求其兩組重…

java中將一組人分兩組,求其兩組重…

初學者建議看第一種方法!第二種比較全,運用迭代,比較燒腦
第一種方法:自己寫的!
sample.org.exercisejava.util.Arraysjava.util.Scannerpublic class HomeWork2 {
(String[] args) {
Scanner input = Scanner(System.)System..println()number = input.nextInt()[] weight = [number](i = i < number i++) {
System..println(+(i+)+)weight[i] = input.nextInt()}
Arrays.(weight)(weight)}
([] si) {
last = si.- start = sum1 = si[last]sum2 = si[last - ][] ints1 = [last / + ][] ints2 = [last / + ]ints1[] = sum1ints2[] = sum2(si.% == ) {
(i = i < (last +)/ i++) {
(sum1 > sum2) {
ints1[i] = si[start]ints2[i] = si[last - i-]sum1 += si[start]sum2 += si[last - i]} {
ints1[i] = si[last - i-]ints2[i] = si[start]}
start++}
System..println()(c :
ints1) {
System..print(c + )}
System..println()System..println()(c :
ints2) {
System..print(c + )}
}{
(i = i < (last +)/ i++) {
(sum1 > sum2) {
ints1[i] = si[start]ints2[i] = si[last - i-]sum1 += si[start]sum2 += si[last - i -]} {
ints1[i] = si[last - i-]ints2[i] = si[start]}
start++}
System..println(start)(sum1>sum2){
System..println()ints2[ints2.-] = si[start]}{
System..println()ints1[ints1.-] = si[start]}
System..println()(c :
ints1) {
System..print(c + )}
System..println()System..println()(c :
ints2) {
System..print(c + )}
}
}
}
第二中方法(比較全面):
sample.org.exercisejava.util.ArrayListjava.util.Arraysjava.util.Listjava.util.Scannerpublic class HomeWork1 {
(String[] args) {
Scanner input = Scanner(System.)System..println() = input.nextInt()List list = ArrayList<>()sum = (i = i < i++) {
System.out.println(+(i+)+)s = input.nextInt()list.add(s)sum += s}
cont = /sum /= ArrayList first = ArrayList<>()end = sort(listcontsumfirst)System.out.println(first)(Integer integer:
first) {
list.remove(integer)}
System.out.println(list)}
sort(List listcontsumList first){
(first.size() == cont){
first_sum = (Integer integer : first){
first_sum += integer}
Math.abs(first_sum-sum)}{
min = Integer.MAX_VALUEList minFirst = (i = i < list.size() i++) {
ArrayList temp = ArrayList<>(list)ArrayList f = ArrayList<>(first)f.add(temp.remove(i))func = sort(tempcontsumf)(func < min){
min = funcminFirst = f}
}
first.clear()first.addAll(minFirst)min}


}
}