453.[Leetcode]Minimum Moves to Equal Array Elements
来源:互联网 发布:淘宝网四件套100元之内 编辑:程序博客网 时间:2024/05/21 09:18
注:之后的题,我都会尝试用Python来写一遍,因为在学习python
原题链接
public class Solution { public int minMoves(int[] nums) { // 1. 找出最大,第二大,最小,三个数 // 2. 通过最大,最小,判断是否全部相等 // 3. 通过最大,第二大,获得要增加多少步 boolean allEqu = false; int count = 0; while(true){ int max = nums[0]; int max_2 = nums[0]; int min = nums[0]; int maxPos = 0; int max_2Pos = 0; int minPos = 0; for(int i=1;i<nums.length;i++){ if(nums[i]>max){ max = nums[i]; maxPos= i; } else if(nums[i]<max && nums[i]>max_2){ max_2 = nums[i]; max_2Pos = i; } else if(nums[i]<min){ min = nums[i]; minPos = i; } } if(min == max) break; int d = max-min; count += d; for(int i=0;i<nums.length;i++){ if(i!=maxPos){ nums[i]+=d; } } } return count; }}
当然这样写必定会超时间,题目上提示的是,Math,所以我们不难找出其中的数学规律:
public class Solution { public int minMoves(int[] nums) { // 1. 给nums排序,从大到小 // 2. 最后的加的次数 c = d1 + d2*2 + d3*3 + ... Arrays.sort(nums); int count = 0; int sum = 0; for(int i=nums.length-1;i>0;i--){ count++; sum += (nums[i]-nums[i-1])*count; } return sum; }}
python代码如下:
class Solution(object): def minMoves(self, nums): """ :type nums: List[int] :rtype: int """ nums.sort(reverse=True)#这个是Python中的关键字参数 count,sum = 0,0 for index in range(len(nums)-1): count += 1 sum += (nums[index]-nums[index+1])*count return sum
0 0
- Leetcode Minimum Moves to Equal Array Elements
- leetcode :Minimum Moves to Equal Array Elements
- LEETCODE--Minimum Moves to Equal Array Elements
- LeetCode : Minimum Moves to Equal Array Elements
- leetcode-Minimum Moves to Equal Array Elements
- leetcode[Minimum Moves to Equal Array Elements]
- Minimum Moves to Equal Array Elements(leetcode)
- LeetCode 453. Minimum Moves to Equal Array Elements
- 【leetcode】453. Minimum Moves to Equal Array Elements【E】
- leetcode:453. Minimum Moves to Equal Array Elements
- [leetcode] 453. Minimum Moves to Equal Array Elements 解题报告
- leetcode 453. Minimum Moves to Equal Array Elements
- LeetCode 453. Minimum Moves to Equal Array Elements
- LeetCode 453. Minimum Moves to Equal Array Elements
- 453.[Leetcode]Minimum Moves to Equal Array Elements
- LeetCode-453. Minimum Moves to Equal Array Elements
- LeetCode 453. Minimum Moves to Equal Array Elements
- 【LeetCode】 453. Minimum Moves to Equal Array Elements
- linux input子系统 — TP A/B(Slot)协议
- 【交易记录】2016-12-13
- 哈理工oj 2317 Game
- 集合
- 错误处理
- 453.[Leetcode]Minimum Moves to Equal Array Elements
- What’s New In Python 3.0
- Android Vector曲折的兼容之路
- leetCode 7. Reverse Integer
- 标准容器类提供的四种迭代器类型
- 新手开发基于Django框架的python web(一)
- UILabel&UITextView文本嵌入图片处理
- python替换缺失值,处理空值+生成图形+图形标准化
- eclipse servlet 连接mysql