算法leetcode每日一练1551. 使数组中所有元素相等的最小操作数
Posted 二当家的白帽子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法leetcode每日一练1551. 使数组中所有元素相等的最小操作数相关的知识,希望对你有一定的参考价值。
文章目录
- 1551. 使数组中所有元素相等的最小操作数:
- 样例 1:
- 样例 2:
- 提示:
- 分析:
- 题解:
- 原题传送门:https://leetcode.cn/problems/minimum-operations-to-make-array-equal/
1551. 使数组中所有元素相等的最小操作数:
存在一个长度为 n
的数组 arr
,其中 arr[i] = (2 * i) + 1 ( 0 <= i < n )
。
一次操作中,你可以选出两个下标,记作 x
和 y
( 0 <= x, y < n
)并使 arr[x]
减去 1
、arr[y]
加上 1
(即 arr[x] -=1
且 arr[y] += 1
)。最终的目标是使数组中的所有元素都 相等 。题目测试用例将会 保证 :在执行若干步操作后,数组中的所有元素最终可以全部相等。
给你一个整数 n
,即数组的长度。请你返回使数组 arr
中所有元素相等所需的 最小操作数 。
样例 1:
输入:
n = 3
输出:
2
解释:
arr = [1, 3, 5]
第一次操作选出 x = 2 和 y = 0,使数组变为 [2, 3, 4]
第二次操作继续选出 x = 2 和 y = 0,数组将会变成 [3, 3, 3]
样例 2:
输入:
n = 6
输出:
9
提示:
- 1 <= n <= 1 0 4 10^4 104
分析:
- 面对这道算法题目,二当家的陷入了沉思。
- 有规律的数当然要用数学来解决。
题解:
java
class Solution
public int minOperations(int n)
return n * n >> 2;
c
int minOperations(int n)
return n * n >> 2;
c++
class Solution
public:
int minOperations(int n)
return n * n >> 2;
;
python
class Solution:
def minOperations(self, n: int) -> int:
return n * n >> 2
go
func minOperations(n int) int
return n * n >> 2
rust
impl Solution
pub fn min_operations(n: i32) -> i32
n * n >> 2
typescript
function minOperations(n: number): number
return n * n >> 2;
;
原题传送门:https://leetcode.cn/problems/minimum-operations-to-make-array-equal/
非常感谢你阅读本文~
欢迎【👍点赞】【⭐收藏】【📝评论】~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://le-yi.blog.csdn.net/ 博客原创~
以上是关于算法leetcode每日一练1551. 使数组中所有元素相等的最小操作数的主要内容,如果未能解决你的问题,请参考以下文章
算法千题案例每日一练 LeetCode打卡——106.数组拆分 I
算法千题案例每日一练 LeetCode打卡——106.数组拆分 I
算法千题案例每日一练LeetCode打卡——107.重塑矩阵
算法千题案例每日一练LeetCode打卡——107.重塑矩阵