4-12贝壳后端笔试为啥弹珠跑不出来...测试案列和自己假设的都能跑通😣

还有大家AC了几道呢?🤩🤩
全部评论
public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] nums = new int[n]; for (int i = 0; i < nums.length; i++) { nums[i] = in.nextInt(); } System.out.println(getPosibility(nums)); } static int getPosibility(int[] nums) { // 排序 Arrays.sort(nums); // 累积最高可能值 int[] cache = new int[nums.length]; cache[0] = nums[0]; for (int i = 1; i < nums.length; i++) { cache[i] = nums[i] + cache[i - 1]; } // 计算累计最高可能值是否大于后一个值 for (int i = nums.length - 2; i >= 0; i--) { if(nums[i] == nums[i + 1]) { continue; } // 累积最高值也无法大于后一个值就退出 if(cache[i] < nums[i + 1]) { return nums.length - i - 1; } } return nums.length; }
点赞 回复
分享
发布于 2021-04-12 22:17

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务