Leetcode 最小調整數 滑動視窗遞增子串行

2021-10-25 02:05:59 字數 405 閱讀 5905

給定乙個長度為n的陣列,以及乙個乘積值b,每次只能對乙個數增大或減少乙個單位,問最少多少次使得陣列乘積為b

【思路】

要使得調整的次數最少,那麼最開始調整的那個數字,應該是最小的數。

貪心策略:選最小的數調整,其它部分數乘積最大(自己需要調整的偏移值就盡可能小)

先對原先陣列從小到大排序。

對於k  如果 b%k==0  =》  b=b/k   即如果能整除,那麼直接整除

如果b%k!=0  =》 不能整除 那麼 a[k]--  (即調整一次  因為最差情況下a[k] 調整為1 那麼一定能整除)

直到k=>n

int fun(vectorarr,int b)

else

}cout<}

}

LintCode 最小調整代價

給乙個整數陣列,調整每個數的大小,使得相鄰的兩個數的差小於乙個給定的整數target,調整每個數的代價為調整前後的差的絕對值,求調整代價之和最小是多少。樣例對於陣列 1,4,2,3 和target 1 最小的調整方案是調整為 2,3,2,3 調整代價之和是2。返回2。注意 你可以假設陣列中每個整數都...

91 最小調整代價

2017.9.7 設定二維陣列 dp i j 表示 將第 i 個數調整到 j 時,當前最小的調整代價總和。那麼初始化時,將第0 個元素調整到 j 時,dp 0 j 就為 abs j arr 0 的值。在之後的運算中,將第 i 個元素調整到 j 時 其前乙個元素的變化範圍為 j targer j ta...

lintcode練習 91 最小調整代價

給乙個整數陣列,調整每個數的大小,使得相鄰的兩個數的差不大於乙個給定的整數target,調整每個數的代價為調整前後的差的絕對值,求調整代價之和最小是多少。對於陣列 1,4,2,3 和target 1,最小的調整方案是調整為 2,3,2,3 調整代價之和是2。返回2。你可以假設陣列中每個整數都是正整數...