貪心演算法 刪數問題

2021-06-08 10:24:18 字數 734 閱讀 2800

刪數問題:

給定乙個n位正整數a,刪掉其中任意k(k<=n)個位,剩下的為按原順序形成乙個新的正整數。

找出剩下的數字最小的刪樹方案。

輸入:a>0,n位,0

輸出:最小的剩下的數。

貪心策略:

最近下降點優先。

自左向右逐位掃瞄數字a,找到第i位,使得a[i]>a[i+1],那麼刪掉第i位後,剩下的是當前數字刪掉1位後的最小值。

迭代k次,刪掉k位即可。

例子:

輸入:a=178543,k=4

178543 -> 17543 -> 1543 -> 143 -> 13

**實現:

/**

* 刪數問題

* 給定乙個n位正整數a,刪掉其中任意k(k<=n)個位,剩下的為按原順序形成乙個新的正整數。

* 找出剩下的數字最小的刪樹方案。

* @author xuefeng

*/public class removenumbits

sb.delete(j, j + 1);

} return sb.length() == 0 ? 0 : integer.parseint(sb.tostring());

} public static void main(string args)

}

python貪心演算法求刪數問題 貪心演算法 刪數問題

給定n位正整數a,去掉其中任意k n 個數字後,剩下的數字按原次序排列組成乙個新 的正整數。對於給定的n位正整數a和正整數 k,設計乙個演算法找出剩下數字組成的新數最 小的刪數方案。輸入格式 第 1 行是1 個正整數 a。第 2 行是正整數k。輸出格式 輸出最小數。輸入樣例 在這裡給出一組輸入。例如...

python貪心演算法求刪數問題 貪心演算法 刪數問題

給定n位正整數a,去掉其中任意k n 個數字後,剩下的數字按原次序排列組成乙個新的正整數。對於給定的n位正整數a 和正整數k,設計乙個演算法找出剩下數字組成的新數最小的刪數方案。演算法的原理應該是說從最高位開始,一次向低位搜尋,一旦遇到前一位 高位 的數大於當前位,則刪去前一位,直到刪除k個數,如果...

演算法 (貪心演算法) 刪數問題

刪數問題 需知道的數學定理 給定n位正整數a,去掉其中任意k n 個數字後,剩下的數字按原次序排列組成乙個新 的正整數。對於給定的n位正整數a和正整數 k,設計乙個演算法找出剩下數字組成的新數最 小的刪數方案。定理 ex 1 2 3 9 5 刪掉乙個數 從第乙個數開始遍歷,到尋找到單調遞減的第乙個數...