Products of Array Except Self
Easy Difficulty
Section titled “Easy Difficulty”Problem
Section titled “Problem”Given an integer array nums, return true if any value appears more than once in the array, otherwise return false.
First Solution
Section titled “First Solution”class Solution { /** * @param {number[]} nums * @return {boolean} */ hasDuplicate(nums) { let seen = []; let dupe = false; nums.forEach((num) => { if (seen.includes(num)) { dupe = true; } seen.push(num); }) return dupe; }}
Time Complexity: O(n^2)
Thoughts/Notes
Section titled “Thoughts/Notes”This was a very easy problem to solve, just keep track of elements you’ve seen and then check if any of them are already seen. However, since I used .includes, this is time complexity O(n^2). However an O(n) solution is super easy.
Second Solution
Section titled “Second Solution”class Solution { /** * @param {number[]} nums * @return {boolean} */ hasDuplicate(nums) { let sorted = nums; sorted.sort();
for (let i = 1; i < nums.length; i++) { if (sorted[i] === sorted[i - 1]) return true; }
return false; }}
Thoughts/Notes
Section titled “Thoughts/Notes”Almost an easier solution to the original. The crux is just sorting the array and then checking if there’s an identical element next to it.