百度网站优点,花生壳免费域名注册,怎么建设网站上传音乐,广州百度竞价外包插#xff1a; 前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈#xff0c;越努力越幸运#xff0c;大家一起学习鸭~~~ 题目#xff1a;
给你一个整数数组 nums #xff0… 插 前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到网站。 坚持不懈越努力越幸运大家一起学习鸭~~~ 题目
给你一个整数数组 nums 你的目标是令 nums 中的所有元素相等。完成一次减少操作需要遵照下面的几个步骤
找出 nums 中的 最大 值。记这个值为 largest 并取其下标 i 下标从 0 开始计数。如果有多个元素都是最大值则取最小的 i 。 找出 nums 中的 下一个最大 值这个值 严格小于 largest 记为 nextLargest 。 将 nums[i] 减少到 nextLargest 。 返回使 nums 中的所有元素相等的操作次数。
示例 1
输入nums [5,1,3] 输出3 解释需要 3 次操作使 nums 中的所有元素相等
largest 5 下标为 0 。nextLargest 3 。将 nums[0] 减少到 3 。nums [3,1,3] 。largest 3 下标为 0 。nextLargest 1 。将 nums[0] 减少到 1 。nums [1,1,3] 。largest 3 下标为 2 。nextLargest 1 。将 nums[2] 减少到 1 。nums [1,1,1] 。 示例 2
输入nums [1,1,1] 输出0 解释nums 中的所有元素已经是相等的。 示例 3
输入nums [1,1,2,2,3] 输出4 解释需要 4 次操作使 nums 中的所有元素相等
largest 3 下标为 4 。nextLargest 2 。将 nums[4] 减少到 2 。nums [1,1,2,2,2] 。largest 2 下标为 2 。nextLargest 1 。将 nums[2] 减少到 1 。nums [1,1,1,2,2] 。largest 2 下标为 3 。nextLargest 1 。将 nums[3] 减少到 1 。nums [1,1,1,1,2] 。largest 2 下标为 4 。nextLargest 1 。将 nums[4] 减少到 1 。nums [1,1,1,1,1] 。
提示
1 nums.length 5 * 10^4 1 nums[i] 5 * 10^4
java代码
class Solution {public int reductionOperations(int[] nums) {int[] hash new int[50001];int min Integer.MAX_VALUE;for (int i 0; i nums.length; i) {hash[nums[i]];min Math.min(min, nums[i]);}int ans 0, sum 0;for (int i hash.length - 1; i 0; i--) {if (hash[i] ! 0 i ! min) {sum hash[i];ans sum;}}return ans;}
}