最小增量递减操作以使数组不增加

时间:2019-01-29 05:11:56

标签: arrays

  

给定一个数组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作为输出。我不认为这是一个贪婪的算法问题。应该采取什么方法。

1 个答案:

答案 0 :(得分:0)

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