[leetcode]問題解答と解説。136. Single Number [JavaScript]
皆さんleetCode好きですよね。私も好きです。
なかなかやる機会がないのですよね。
時間時間で。
私は私自身ある決意をして今臨んでいます。
では今日のleetCodeをやったことを見てもらいます。
これは
「私は年末までこれを続けたらどんなleetCoderになるか」のシリーズ。
実験的ブログ更新です。
136. Single Number ルール
- number[]の配列に必ず2つのペアにならない1つの要素がある。それを抽出する
- 例えば[2, 2, 1]なら1
- [4,6,4, 2,5,2,6]なら5
136. Single Number 問題ページ
136. Single Number my code
- まずは揃える
- マッチしない場合は前後の数値を確認して違うものをresultに入れる
function singleNumber(nums: number[]): number {
const sn = nums.sort()
let f = 0;
let sl = sn.length
if(sn.length === 1) return sn[0]
let result = 0
while(f < sl){
if(sn[f] === sn[f+1]){
f = f + 2;
continue;
}
if(sn[f-1] === sn[f]){
result = sn[f+1]
break
}
result = sn[f]
break
}
return result;
};
ちょっと難しく考えすぎている...
^
がよく説明されていない
これの方が理解できてスマートな気がした
Facebook & Amazon's SINGLE NUMBER | LeetCode | [step - by - step 2 Solutions] JAVASCRIPT
function singleNumber(nums) {
let setforUnique = new Set()
for (num of nums){
if(setforUnique.has(num)){
setforUnique.delete(num)
} else {
setforUnique.add(num)
}
}
return Array.from(setforUnique)[0]
}
singleNumber([4, 1, 2, 1, 2])
重複があったら削除して、なければadd
別解2
function singleNumber(nums) {
let result = 0
for(let i = 0; i < nums.length; i++){
result ^= nums[i]
}
return result;
}
Single Numberをやってみて感想
- 簡単に書いてあって読みやすいものが一番いいですね