js實現刪除k位數字使得最終的數字最小演算法

2021-10-09 07:53:20 字數 1085 閱讀 6956

演算法題幹:

實現乙個function,有兩個入參number,key,使得number刪除key位數字之後生成的最小。

示例:輸入

輸出14562,2

14289122,1

9122

89122,2

12210,2

0110,2

0思路:

最優解是刪除出現的第乙個左邊》右邊的數,因為刪除之後高位減小。

具體function如下:

function

reducenumber

(number, key)

let temp = number.

tostring()

.split(''

);for(

var i =

0; i < key; i++)}

if(equer >=0)

} result = temp;

return result.

join(''

);}console.

log(

reducenumber

(1456912,1

))console.

log(

reducenumber

(1456912,2

))console.

log(

reducenumber

(1456912,3

))console.

log(

reducenumber(11

,2))

console.

log(

reducenumber

(5456912,1

))console.

log(

reducenumber

(5456912,2

))console.

log(

reducenumber

(8917282,2

))

歡迎一起**

演算法 移掉K位數字使得數值最小

給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。leetcode 解題思路 如果這個數的各個位是遞增的,那麼直接從最後面開始移除一定就是最最小的 如果這個數的位值不是底層的,那麼,盡量移除高位的逆序數字。如果最後變成遞增了之後,k還有的剩,就再從後面移除大的數字...

從一串數字裡刪除k個數字,使得新的那串數字最小

最近接觸一道有趣的演算法題,意思是 給定一串數字,這串數字有可能大於long的最長長度,譬如12542670021,從這串數字中刪除k個數字,使得新數字串在所有可能性結果中最小,那麼應該刪除哪k個數字呢?下面給出思路和 以及 的優化。當然,數字的大小高位影響最大,所以首先考慮的是最高為,即從最左邊開...

刪除K個數字,使剩下的數字串最大

題目 乙個n位的數,去掉其中的k位,問怎樣去掉使得留下來的那個 n k 位的數最大?分析 可以直接用貪心來求解,每次尋找從頭開始的連續遞減序列,刪除遞減序列的最後乙個元素,重複k次,最後剩下的數字串組成的數字最大。比如 13787323 第一次,遞減序列只有1,刪除1,得到3787323 第二次,遞...