LeetCode top100 只出現一次的數字

2021-10-06 03:51:23 字數 1337 閱讀 6081

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。

題目分析

輸入: [2,2,1]

輸出: 1

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

輸出: 4

思路(一)

首先對陣列採用sort()結合函式進行排序。第二步,對第乙個元素和第二個元素以及倒數第乙個和倒數第二個元素進行單獨判斷。最後對陣列進行遍歷(i=1),對每個元素和前乙個元素以及後乙個元素進行判斷比較,不相等時返回該值。

/** 

* @param nums

* @return

*/var

singlenumber

=function

(nums));

len=result.length;

if(result[0]

!=result[1]

)if(result[len-1]

!=result[len-2]

)for

(var i=

1;i1;i++)}

return res;

};

思路(二)

每次遞增兩個為一組進行相鄰元素判斷

/** 

* @param nums

* * @return

* */

varsinglenumber

=function

(nums));

len=result.length;

for(

var i=

0;i}}

;

思路(三)
var

singlenumber

=function

(nums));

var len = nums.length;

for(

var i=

0; i}return res;

};

思路(四)

採用異或的方式,將所有的數字異或一遍,相同的異或結果為0,不同的異或結果為1,b ^ b = 0;0 ^ a = a;同時滿**換律:a ^ b ^ c <=> a ^ c ^ b

var a = [2,3,2,4,4]

2 ^ 3 ^ 2 ^ 4 ^ 4等價於 2 ^ 2 ^ 4 ^ 4 ^ 3 => 0 ^ 0 ^3 => 3

var

singlenumber

=function

(nums)

return result;

};

LeetCode top100 每日溫度

請根據每日 氣溫 列表,重新生成乙個列表。對應位置的輸出為 要想觀測到更高的氣溫,至少需要等待的天數。如果氣溫在這之後都不會公升高,請在該位置用 0 來代替。例如,給定乙個列表 temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 ...

LeetCode top100 顏色分類

給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題 題目分析 輸入 2,0,2,1,1,0 輸出 0,0,1,1,...

LeetCode top100 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。題目分析 有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。輸入 輸出 true 輸入 輸出 true 輸入 輸出 false 思路 一 使用棧的方法,後進先出,如果遇見左括號入棧,右括號出戰,最終判...