217. Contains Duplicate
Leetcode 問題: 217. Contains Duplicate
Categories:
題目
Given an integer array
nums
, return true if any value appears at least twice in the array, and return false if every element is distinct.
給予一個整數陣列 nums
,如果陣列中有任何整數重複出現 2 次以上
,則回傳 true
,如果都是唯一值,則回傳 false
Example
Input: nums = [1,2,3,1]
Output: true
Input: nums = [1,2,3,4]
Output: false
Input: nums = [1,1,1,3,3,4,3,2,4,2]
Output: true
演算法
1. 建立儲存唯一值的 Set
將沒有出現過的資料都儲存在這個 Set
2. 判斷資料在 Set 有沒有出現過
若資料在 Set 有出現過,則表示這個數字陣列 nums
有重複的整數,不需要再檢查,直接回傳 true
如果都沒有找到重複的資料,再回傳 false
答案
JavaScript
function containsDuplicate(numsList) {
// 建立儲存唯一值的 Set
var numsSets = new Set();
// 預設沒有包含重複的數字
var isContainDuplicateNumber = false;
for (var i = 0; i < numsList.length; i++) {
// 目前的數字
var currentNumber = numsList[i];
if (numsSets.has(currentNumber)) {
// 如果目前的數字已經出現過,表示包含重複的數字,跳開不用再檢查了
isContainDuplicateNumber = true;
break;
}
// 將不重複的數字加入 Set
numsSets.add(currentNumber);
}
return isContainDuplicateNumber;
}
TypeScript
function containsDuplicate(numsList: number[]): boolean {
// 建立儲存唯一值的 Set
const numsSets = new Set();
// 預設沒有包含重複的數字
let isContainDuplicateNumber = false;
for (let i = 0; i < numsList.length; i++) {
// 目前的數字
let currentNumber = numsList[i];
if (numsSets.has(currentNumber)) {
// 如果目前的數字已經出現過,表示包含重複的數字,跳開不用再檢查了
isContainDuplicateNumber = true;
break;
}
// 將不重複的數字加入 Set
numsSets.add(currentNumber);
}
return isContainDuplicateNumber;
};