[LeetCode]-[JavaScript]-[解題]-Single Number-找出陣列中的單號

文、意如

題目精簡說明:

一個陣列中,每個元素會出現兩次,找到只出現一次的元素

 

 

原始題目:

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 - 關於我 - 意如