Let Code符号化問題2021、05/21-Find the Duplicate Number


[質問]


Given an array of integers nums containing n + 1 integers where each integer is in the range [1, n] inclusive.
There is only one repeated number in nums , return this repeated number.
You must solve the problem without modifying the array nums and uses only constant extra space.
Example 1:
Input: nums = [1,3,4,2,2]
Output: 2
Example 2:
Input: nums = [3,1,3,4,2]
Output: 3
Example 3:
Input: nums = [1,1]
Output: 1
Example 4:
Input: nums = [1,1,2]
Output: 1
(要約)指定した配列で重複する数値を検索します.

[回答]

var findDuplicate = function(nums) {
  const obj = {};
 
  for(let i = 0, len = nums.length; i < len; i++) {
    if(obj[nums[i]]) {
      return nums[i];
    }
    else {
      obj[nums[i]] = 1;
    }
  }
};
最初からnumsを巡回し、キー値をオブジェクトとして要素を作成し、キー値がすでに存在する場合はreturnに設定します.