乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。
請寫程式找出這兩個只出現一次的數字。
你可以假設這兩個數字一定存在。
樣例
輸入:[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...