题解 | #数组分组#
数组分组
https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
//根据输入计算sum3,sum5和所有数总和sum,同时把不是5和3倍数的剩余数放入集合
LinkedList<Integer> list = new LinkedList<>();
int n = in.nextInt();
int sum5=0, sum3=0, sum = 0;
for (int i = 0; i < n; i++){
int cur = in.nextInt();//输入
if (cur % 5 == 0){//5倍数和
sum5 += cur;
}else if (cur % 3 == 0){//3倍数和
sum3 += cur;
}else{//剩余加入集合
list.add(cur);
}
sum += cur;//总和
}
//特例,总和不是2的倍数,不可分2份和相等的数字
if(sum%2!=0) System.out.print("false");
else{System.out.print(bt(list,sum/2,sum3,0));}
}
static boolean bt(LinkedList<Integer> list,int tar,int buc,int start){
if(buc==tar){
return true;
}
for(int i=start;i<list.size();i++){
buc+=list.get(i);
if(bt(list,tar,buc,i+1)){return true;}
buc-=list.get(i);
}
return false;
}
}
小天才公司福利 1265人发布