Quick actions

cmd+k|ctrl+k

Navigation

Languages

SolvingCodingProblem

Snippet info

Language

JavaScript

Visibility

public

Author

zach.c.kohs

Created

2024-02-23T18:02:01.467707Z

Updated

2024-02-23T18:02:01.467707Z

// Given 2 arrays, create a function that let's a user know (true/false) whether these two arrays contain any common items
//For Example:
// const array1 = ['a', 'b', 'c', 'x'];
// const array2 = ['z', 'y', 'a', 'i'];
// //should return false.
// //-----------
// //const array1 = ['a', 'b', 'c', 'x'];//const array2 = ['z', 'y', 'x'];
// //should return true.

// // 2 parameters - arrays - no size limit
// // return true or false
// // O(a + b)
// const containsCommonItems = (arr1, arr2) => {
//     // Loop through first array and make an object
//     // where the elements are properties
//     let map = {};
//     for (let i = 0; i < arr1.length; i++) {
//         if(!map[arr1[i]]) {
//             const item = arr1[i];
//             map[item] = true;
//         }
//     }
//     // console.log(map);
//     // Loop through second array and see if 
//     // elements exist object properties
//     for (let j = 0; j < arr2.length; j++) {
//         if(map[arr2[j]]) {
//             return true;
//         }
//     }
//     return false;
// }

// const containsCommonItems2 = (arr1, arr2) => {
//     return arr1.some(element => arr2.includes(element))
// }

// console.log(containsCommonItems(array1, array2));
// console.log(containsCommonItems2(array1, array2));



// Google Interview Example
// Naive
function hasPairWithSum(arr, sum){
    var len = arr.length;
    for(var i = 0; i<len-1; i++) {
        for (var j = i+1; j<len; j++) {
            if (arr[i] + arr[j] === sum)
                return true;
        }
    }
    
    return false;
}

// Better
function hasPairWithSum2(arr, sum) {
    const mySet = new Set();
    const len = arr.length;
    for (let i = 0; i < len; i++) {
        if (mySet.has(arr[i])) {
            return true;
        }
        mySet.add(sum - arr[i]);
    }
    return false;
}

console.log(hasPairWithSum2([6,4,3,2,1,7], 9))
INFO