lintcode 843 數字翻轉

2021-08-17 12:21:02 字數 607 閱讀 2979

給你乙個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 ...