给定一个数组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作为输出。我不认为这是一个贪婪的算法问题。应该采取什么方法。
答案 0 :(得分:0)
在gfg中给出的代码是正确的,您一定错过了两次将元素推入元素的部分,一次在if条件内,另一次在if条件外 附言我也在寻找背后的逻辑。