美文网首页
招银卡中心-团建活动-java

招银卡中心-团建活动-java

作者: Jacinth | 来源:发表于2017-09-13 21:12 被阅读0次

    import java.util.Scanner;
    
    /*解题思路:
     * A获得人数的身高就加,B获得人数的身高就减,最后看结果是否大于0。
     * 定义dp[i]为 A - B的差, 最后判断dp[n] > 0即可。*/
    
    public class Solution {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int m = sc.nextInt();// 同事数量
            int[] colls = new int[m];// 同事身高数组
            for (int i = 0; i < m; ++i) {
                colls[i] = sc.nextInt();
            }
    
            int score = winner(colls, 0, 1);
            if (score > 0) {
                System.out.println("true");
            } else {
                System.out.println("false");
            }
            sc.close();
        }
    
        public static final int winner(int[] nums, int s, int turn) {
            if (s > nums.length - 1) {
                return 0;
            }
            if (s == nums.length - 1) {
                return turn * nums[s];
            }
            int a = turn * (nums[s]) + winner(nums, s + 1, -turn);
            int b = turn * (nums[s] + nums[s + 1]) + winner(nums, s + 2, -turn);
            return turn * Math.max(turn * a, turn * b);
        }
    }
    

    这题直接输出“true”,测试用例60%。

    相关文章

      网友评论

          本文标题:招银卡中心-团建活动-java

          本文链接:https://www.haomeiwen.com/subject/yswlsxtx.html