一樣讓我們直接來看題目吧:
/*Given an array of integers, find if the array contains any duplicates.
Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.
Example 1:
Input: [1,2,3,1]
Output: true
Example 2:
Input: [1,2,3,4]
Output: false
Example 3:
Input: [1,1,1,3,3,4,3,2,4,2]
Output: true
*/
var containsDuplicate = function(nums) {
let count ={}
for(let num in nums){
count[nums[num]] ? count[nums[num]]++ : count[nums[num]] = 1
if(count[nums[num]]>1) return true
}
return false
};
今天的挑戰,一開始會給一個數字陣列,如果這個陣列裡包含有重複的數字就回傳true,如果沒有就回傳false,那就讓我們直接進入思考部分吧:
思考一:
var containsDuplicate = function(nums) {
if(nums.length>1){
let result
for(let i = 0; i < nums.length - 1; i++){
let rest = nums.slice(i+1)
result = rest.indexOf(nums[i]) !== -1
if(result) break
}
return result
}else{
return false
}
};
思考二:
1.我們先宣告一個空物件,為了之後來計算每一次迴圈值的次數,並在每一次迴圈去檢查當下的值有沒有出現超過兩次,有的話直接回傳true,沒有最後return false。
var containsDuplicate = function(nums) {
let count ={}
for(let i in nums){
count[nums[i]] ? count[nums[i]]++ : count[nums[i]] = 1
if(count[nums[i]]>1) return true
}
return false
};
以上是今天的刷題挑戰。如果有哪位大大路過經過,還請多多分享與賜教。