这题的核心要求是在满足和为偶数的前提下,和要尽可能大
那么在输入值的时候我首先把偶数加起来,把奇数专门存到集合中
然后判断奇数的个数是否大于2,如果是,那么求出最多可以接受多少个奇数,也就是
int len=list.size();
len=len/2*2;
对集合进行从大到小排序
取前len个加起来即可
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int a[]=new int[n];
ArrayList<Integer> list=new ArrayList<>();
int count=0;
for (int i = 0; i < a.length; i++) {
a[i]=scanner.nextInt();
if(a[i]%2==0) {
count+=a[i];
}else {
list.add(a[i]);
}
}
int len=list.size();
if(len>=2) {
Collections.sort(list,Collections.reverseOrder());
len=len/2*2;
for(Integer x:list) {
count+=x;
len--;
if(len==0)break;
}
}
System.out.println(count);
}
}



京公网安备 11010502036488号