劍指offer第五周殘缺

2021-10-07 08:46:03 字數 2291 閱讀 9170

乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。

請寫程式找出這兩個只出現一次的數字。

你可以假設這兩個數字一定存在。

樣例

輸入:[1,2,3,3,4,4]

輸出:[1,2]

陣列中只有兩個數字出現一次,其餘數字都出現兩次。

根據 a ^ a = 0得,如果將陣列所有數字做異或即得到 此唯獨出現一次的兩個數字的異或;

然後根據位 進行分組,即可;

class

solution

return ans;

}}

在乙個陣列中除了乙個數字只出現一次之外,其他數字都出現了三次。

請找出那個只出現一次的數字。

你可以假設滿足條件的數字一定存在。

思考題:

樣例

輸入:[1,1,1,2,2,2,3,4,4,4]

輸出:3

方法一:將nums陣列中所有數分為不同的位數去看,乙個數出現一次,其餘全部出現三次,其它數字在它的位上出現的次數一定是3此;

比如: 3 — 11,那麼 3在 第0位和第1位一定出現3次

而 5— 101 ,那麼 最後一位出現 6次,中間出現3次,首位出現3次; 如果有個數只出現一次,則打破此平衡,不再是3的倍數

class

solution

}int res =

0, m =3;

// 將出現次數不是3的整倍數的位上 取為1;

for(

int i =

0; i <

32; i ++

)return res;

}}

輸入乙個陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。

如果有多對數字的和等於s,輸出任意一對即可。

你可以認為每組輸入中都至少含有一組滿足條件的輸出。

樣例

輸入:[1,2,3,4] , sum=7

輸出:[3,4]

利用ma存每個數值需要的數

class

solution;}

return null;

}}

輸入乙個正數s,列印出所有和為s的連續正數序列(至少含有兩個數)。

例如輸入15,由於1+2+3+4+5=4+5+6=7+8=15,所以結果列印出3個連續序列1~5、4~6和7~8。

樣例

輸入:15

輸出:[[1,2,3,4,5],[4,5,6],[7,8]]

雙指標

class

solution

if(total == sum)res.

add(

newarraylist

<

>

(temp));

}return res;

}}

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。

為簡單起見,標點符號和普通字母一樣處理。

例如輸入字串"i am a student.",則輸出"student. a am i"

樣例

輸入:"i am a student."

輸出:"student. a am i"

class

solution

sb.(str[0]

.trim()

);return sb.

tostring()

;}}

字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。

請定義乙個函式實現字串左旋轉操作的功能。

比如輸入字串"abcdefg"和數字2,該函式將返回左旋轉2位得到的結果"cdefgab"

注意:

樣例

輸入:"abcdefg" , n=2

輸出:"cdefgab"

直接string

class

solution

}

劍指offer第五題 替換空格

思路應該使用指標從後向前替換字串。不過python用不到。class solution s 源字串 def replacespace self,s write code here new s for j in s if j new s new s 20 else new s new s j retu...

《劍指offer》第五題(替換空格)

替換空格 include using namespace std bool replace space char str,const intlength int new length true length 2 count 演算法核心思想,從尾到頭複製 if new length length 要判...

劍指Offer(五) 位運算

寫乙個函式,求兩個整數之和,要求在函式體內不得使用 四則運算符號。位運算 coding utf 8 class solution def add self,num1,num2 write code here a,b num1,num2 while b 0 a,b a b,a b 1 a 0xffff...