Search Problem
Largest Number At Leat Twice of Others
- 주어진 배열 nums의 최대값이 적어도 다른 값들의 2배라면 최대값의 index를 반환하고, 그렇지 않을 경우 -1을 반환하는 함수 구현
var dominantIndex = function(nums) {
let largest = 0;
let largestIndex = 0;
for (let i = 0; i <nums.length; i++) {
if (nums[i] > largest) {
largest = nums[i];
largestIndex = i;
}
}
console.log(largest);
const isTwiceLarger = nums.every((num) => num === largest || num * 2 <= largest);
return isTwiceLarger ? largestIndex : -1;
};
Interaction of Two Arrays
- 주어진 2개의 배열 nums1, nums2를 인자로 받아서 두 배열의 고유한 공배수 배열을 반환하는 함수 구현
var intersection = function(nums1, nums2) {
let result = new Set();
arr = nums1.length >= nums2.length ? nums1 : nums2;
for (i = 0; i < arr.length; i++) {
if (nums2.includes(nums1[i])) {
result.add(nums1[i])
}
}
result = Array.from(result);
return result;
};
Interaction of Two Arrays 2
- 주어진 2개의 배열 nums1, nums2를 인자로 받아서 두 배열의 공배수 배열을 반환하는 함수 구현
var intersect = function(nums1, nums2) {
let result = [];
let intersectionIndex = [];
let longArr = nums1.length >= nums2.length ? nums1 : nums2;
let shortArr = longArr === nums1 ? nums2 : nums1;
for (i = 0; i < shortArr.length; i++) {
for (j = 0; j < longArr.length; j++) {
if (intersectionIndex.includes(j)) {
continue;
}
if (shortArr[i] === longArr[j]) {
result.push(longArr[j]);
intersectionIndex.push(j);
break;
}
}
}
return result;
};