文、意如
題目精簡說明:
一個陣列中,每個元素會出現兩次,找到只出現一次的元素
原始題目:
Given a non-empty array of integers nums
, every element appears twice except for one. Find that single one.
You must implement a solution with a linear runtime complexity and use only constant extra space.
範例參考:
Example 1:
Input: nums = [2,2,1]
Output: 1
Example 2:
Input: nums = [4,1,2,1,2]
Output: 4
Example 3:
Input: nums = [1]
Output: 1
解題思路:
1.先排序陣列由小到大
2.只比第一個元素與第二個元素
3.如果前兩個元素相等就刪除,否則就結束(找到不重複的元素了)
因為題目說明不重複只有一個,因此先排序後,只需比較第一個元素和第二個元素是否一樣,
如果一樣即刪除元素,繼續判斷第一個元素和第二個元素是否一樣,判斷到不一樣時即找到不重複的元素。
參考程式碼:
/**
* @param {number[]} nums
* @return {number}
*/
var singleNumber = function(nums) {
snums=nums.sort()
for(i=0;i<snums.length;i++){
if(snums[0]==snums[1]){
snums.splice(0,2);
}
}
return snums[0]
};
執行結果:
Yiru@Studio - 關於我 - 意如