Мне нужна помощь специалиста / совет, как лучше подойти к этой проблеме. У меня есть два массива, и мне нужно сравнить эти два массива.
Скажем, у меня есть 2 массива для сравнения, array1 & array2, и мне нужно проверить, существуют ли значения в массиве 1 в массиве 2, в PHP я могу использовать функцию «array_diff», которая работает каждый раз, но я не хочу использовать array_diff, потому что интервьюер говорит, что это не так просто, и он хочет, чтобы я сделал это по-другому.
По умолчанию я думаю, что нужно перебрать массив1, и для каждого значения массива1 снова сравнить этот массив2, две итерации, это будет (n * n) сложность по времени, см. Мой код ниже.
Как мне улучшить этот алгоритм / код. Моя цель - проверить, есть ли значение одного массива в другом. Как мне улучшить этот код, чтобы сравнение двух массивов не заняло так много времени.
Это касается вопросов интервью, а также моего ежедневного кодирования приложений, которые я делаю каждый день
const array1 = ["j1", "ff2", "3hj", "4sss", "5gh", "6ss", "7aqw"];
const array2 = ["klp3", "jks32", "44sss", "3hj", "5gh", "6ss", "7aqw"];
for (let index1 of array1){
for (let index2 of array2){
if (index1 === index2){
console.log("Exists.", "index 1 value: " + index1, "Index 2 value: " + index2)
}
}
}
Мне нужно улучшить время. Еще одна сложность времени, которая не является квадратичной.