题解 | #数的选择#前缀和的思想

数的选择

https://www.nowcoder.com/practice/12f72e06fc424e4d9c685cd89f2bed36

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
      Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int n=in.nextInt();
        int[]nums=new int[n];
        for (int i = 0; i < n; i++) {
            nums[i]=in.nextInt();
        }
        Arrays.sort(nums);
        long[]small=new long[n];
        small[0]=nums[0];
        for (int i = 1; i < n; i++) {
              small[i]=small[i-1]+nums[i];
        }
        long[]big=new long[n];
              long[]copy=new long[n];
        for (int i = 0; i < n; i++) {
            copy[i]=nums[nums.length-1-i];
            
        }
        big[0]=copy[0];
        for (int i =1; i <n; i++) {
            big[i]=big[i-1]+copy[i];
        }
         int left=1,right=0;
        while(left<nums.length) {
            if (big[right] > small[left]) {
                System.out.println(right+1);
                return;
            }
           right++;
            if(right<=left){
                left++;
            }
        }
        if(left==nums.length){
             System.out.println(-1);
        }
    }
}

全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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