题解 | 灵异背包?-Java

灵异背包?

https://www.nowcoder.com/practice/812bcedbbe244c9b86e459a244af5ddf

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int sum = 0;
        // 标记总和的奇偶性变化(奇数次奇数元素会使总和为奇数,偶数次则为偶数)
        boolean ifOdd = false;
        // 记录数组中最小的奇数(初始值设为整数最大值)
        int minOdd = Integer.MAX_VALUE;
        
        while (n-- > 0) {
            int a = in.nextInt();
            // 如果当前元素是奇数
            if (a % 2 == 1) {
                // 切换总和的奇偶性标记(每加入一个奇数,总和奇偶性改变)
                ifOdd = !ifOdd;
                // 更新最小奇数(保留最小的奇数)
                minOdd = Math.min(a, minOdd);
            }
            sum += a;
        }
        
        // 如果总和最终为奇数(需要调整为偶数)
        if (ifOdd) {
            // 减去最小的奇数,得到最大可能的偶数和
            System.out.print(sum - minOdd);
        } else {
            // 总和已经是偶数,直接输出
            System.out.print(sum);
        }
    }
}

全部评论

相关推荐

karis_aqa:和hr没关系,都是打工的
点赞 评论 收藏
分享
09-13 17:25
亲切的00后在笔试:我也遇到了,所以我早他一步查看图片
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务