n位非負整數移除k位,使剩餘的數最小
輸入: num = "1432219", k = 3
輸出: "1219"
解釋: 移除掉三個數字 4, 3, 和 2 形成乙個新的最小的數字 1219。
n位非負整數移除k位,使剩餘的數最大// 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)
;}
輸入: 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 選最小的,...