給你乙個01
構成的陣列。請你找出最小翻轉步數,使得陣列滿足以下規則:
1
的後面可以是1
或者0
,但是0
的後面必須是0
。
注意事項
您在真實的面試中是否遇到過這個題?
yes
樣例給出 array =[1,0,0,1,1,1]
, 返回2
。
解釋:
把兩個0翻轉成1。
給出 array =[1,0,1,0,1,0]
, 返回2
。
解釋:
把第二個1和第三個1都翻轉成0。
思路:
遍歷array,在位置i,計算i之前0的個數n和i之後1的個數m。
為了保證0的後面必須是0,將i之前的0全都變為1,將i之後的1全部變為0,翻轉次數m+n。
最後取得最小的m+n值。
class solution
}for(int i=0;i
LintCode 翻轉字串
翻轉字串 給定乙個字串,逐個翻轉字串中的每個單詞。樣例 給出s the sky is blue 返回 blue is sky the 說明 單詞的構成 無空格字母構成乙個單詞 輸入字串是否包括前導或者尾隨空格?可以包括,但是反轉後的字元不能包括 如何處理兩個單詞間的多個空格?在反轉字串中間空格減少到...
相同數字 LintCode
給乙個陣列,如果陣列中存在相同數字,且相同數字的距離小於給定值k,輸出yes,否則輸出no。注意事項 輸入的陣列長度為n,保證n 100000。陣列元素的值為x,0 x 1e9。輸入的k滿足 1 k n。樣例 給出 array 1,2,3,1,5,9,3 k 4,返回 yes 解釋 index為3的...
網易 數字翻轉
對於乙個整數x,定義操作rev x 為將x按數字翻轉過來,並且去除掉前導0。例如 如果 x 123,則rev x 321 如果 x 100,則rev x 1.現在給出整數x和y,要求rev rev x rev y 為多少?輸入為一行,x y 1 x y 1000 以空格隔開。輸出rev rev x ...