n位非負整數移除k位,使剩餘的數最小 大

2021-10-20 18:22:11 字數 1302 閱讀 6488

n位非負整數移除k位,使剩餘的數最小

輸入: num = "1432219", k = 3

輸出: "1219"

解釋: 移除掉三個數字 4, 3, 和 2 形成乙個新的最小的數字 1219。

// 0 <= k <= n

public

static string removekdigitstosmallest

(string num,

int k)

deque.

offerlast

(ch);}

while

(k >0)

while

(deque.

size()

>

1&& deque.

peekfirst()

=='0'

) stringbuilder builder =

newstringbuilder()

;for

(char ch: deque)

return builder.

length()

==0?"0"

: string.

valueof

(builder)

;}

n位非負整數移除k位,使剩餘的數最大
輸入: num = "1432219", k = 3

輸出: "4329"

解釋: 移除掉三個數字 1, 2, 和 1 形成乙個新的最小的數字 4329。

// 0 <= k <= n

public

static string removekdigitstolargest

(string num,

int k)

deque.

offerlast

(ch);}

while

(k >0)

while

(deque.

size()

>

1&& deque.

peekfirst()

=='0'

) stringbuilder builder =

newstringbuilder()

;for

(char ch: deque)

return builder.

length()

==0?"0"

: string.

valueof

(builder)

;}

計算n!的最後一位非0的數

includeint main if sum 100 這裡若設定太小,當階乘很大時,會出現錯誤 printf d d n i,sum 該處為測試所用 printf d sum 10 return 0 這裡需要說明的是,當if sum 100 判斷條件不夠大時,比如只有sum 10,那麼每次只保留階乘...

40億個非負整數中找到出現兩次的數和中位數

問題 現有40億個32位的無符號整數 0 4294967295 可以最多使用1gb,找出出現兩次的數 補充問題 最多用10mb,找到中位數 思路 問題一 可以申請乙個長度為 4294967295 2 的bitmap,用兩個位置表示乙個詞頻,首次遇到數num,則bitarr num2 1 和bitar...

乙個n位的數,去掉其中的k個數,使剩下的數最小

思路一 分析 求一共n位,求其中的m位組成的數最小。那麼這個m位的數,最高位應該在原數的最高位到第m位區間找,要不然就不能當第m位了。比如乙個數 8 4 7 9 6 3 5 2 n 8,k 3 1.第乙個數應在 8 3 間 含8和3 選最小的,應為3 2.第二個數應在5 2 間 含5和2 選最小的,...