leetcode 453. Minimum Moves to Equal Array Elements(C语言,又是一招出奇制胜)46
来源:互联网 发布:中国也门撤侨事件 知乎 编辑:程序博客网 时间:2024/05/29 16:52
贴原题:
解析:
本题是给出一个数组,每次给n-1个小于等于最大值的数增加1,直到所有的数都相等为止,最后返回加1的次数。
常规的算法是不可能行得通了,这辈子都不可能行得通了,只有靠出奇制胜才能Accepted这样子。
出奇制胜的逆向思维:每次小于最大值的数都加1,那么就相当于最大的那个数减去1,直到所有的数都减到和最小值相等为止——
[1,2,3] => [1,2,2] => [1,2,1] => [1,1,1]
那么,我们只需要把每个数都减去最小值便可以得到每个数减的次数。以上例,[1,2,3]的最小值是1,那么1移动的次数应该是1-1=0,2移动的次数是2-1=1,3移动的次数是3-1=2。一共移动的次数即为0+1+2=3。
贴C代码:
int minMoves(int* nums, int numsSize) { int min=*nums;//数组中的最小值 int sum=0;//数组累加和 for(int i=0; i<numsSize; i++) { min=*(nums+i)<min?*(nums+i):min;//找出最小值 sum += *(nums+i);//计算数组累加和 } return sum-numsSize*min;//即每个数都减去最小值}
阅读全文
0 0
- leetcode 453. Minimum Moves to Equal Array Elements(C语言,又是一招出奇制胜)46
- 【C语言】 leetcode 453. Minimum Moves to Equal Array Elements
- LeetCode 453. Minimum Moves to Equal Array Elements 题解(C++)
- 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
- clock()函数调用模版
- 较完整的H5数据库封装---只需要key-value的存取方式
- 动态规划K
- css行内样式的属性设置,css的外部样式的设置
- 设计模式
- leetcode 453. Minimum Moves to Equal Array Elements(C语言,又是一招出奇制胜)46
- 1701H210.27 王建瑜 连续第四天
- JVM调优之简介
- Ubuntu ROS安装及测试
- 使用unity画圆
- HDOJ 2117 Just a Numble
- 关于web项目run模式启动和debug模式启动的一些区别
- 史上最全的iOS各种设备信息获取总结(iPhone8/iPhone X 已更新)
- 百度AI开发者实战营,百度AI开发平台,PaddlePaddle深度学习架构,资料汇总