Algorithm - Search Problems

이소라·2022년 7월 29일
0

Algorithm

목록 보기
7/77

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; 
};

0개의 댓글