最小增量减量运算,使数组不增加

问题描述 投票:1回答:1

给出数组a,您的任务是将其转换为非递增数组这样的形式,我们可以增加或减少数组值最少可以更改1个。

示例:

输入:a [] = {3,1,2,1}输出:1说明:我们可以将通过将数组的第3个元素(即2)更改为3 1 1 1一步中的前一个整数1,因此只需要一步。

输入:a [] = {3,1,5,1}输出:4我们需要将5减小到1使数组以非递增顺序排序。

输入:a [] = {1、5、5、5}输出:4我们需要将1增加到5。

这是问题:https://www.geeksforgeeks.org/minimum-incrementdecrement-to-make-array-non-increasing/

给出的解决方案是错误的。此测试用例失败

{{1,2,3,4,5}。答案应该是6,所有数组元素都转换为3。但是代码给出4作为输出。我不认为这是一个贪婪的算法问题。应该采用什么方法。

arrays
1个回答
0
投票

gfg中给出的代码是正确的,您一定错过了两次将元素压入的部分,一次在if条件内,另一次在if条件外附言我也在寻找背后的逻辑。


© www.soinside.com 2019 - 2024. All rights reserved.