public static int helper(int n,int[] nums){ int[] left = new int[n]; int[] right = new int[n]; int[] t = Arrays.copyOf(nums,n); int ans = 0; for (int i = 1; i < n; i++){ if (nums[i - 1] + 1 > nums[i]){ left[i] = nums[i - 1] + 1 - nums[i]; nums[i] = nums[i - 1] + 1; } } for (int i = n - 2; i >= 0; i--){ if (t[i + 1] + 1 > t[i]){ right[i] = t[i + 1] + 1 - t[i]; t[i] = t[i + 1] + 1; } } for (int i = 0; i < n; i++) ans += Math.min(left[i],right[i]); return ans; } 太长了发不出来,输入输出自己处理,第二题这样我感觉可以,我想到的用例都试了
点赞 评论

相关推荐

点赞 评论 收藏
转发
牛客网
牛客企业服务