Превышен лимит времени для кода, написанного для проблемы в binarysearch.com

#python #function #binary-search

#python #функция #двоичный поиск

Вопрос:

Я написал код для следующей проблемы: учитывая список чисел «nums» и число «k», верните, составляют ли любые два числа из списка до k. Вы не можете использовать один и тот же элемент дважды.

Ограничения: n ≤ 100,000 где «n» — длина «nums» Код, который я написал, приведен ниже:

 class Solution:
def solve(self, nums, k):
    a=0
    if len(nums)<= 100000:
        for i in range(len(nums)):
            for j in range(len(nums)):
                if i !=j:
                    if nums[i] nums[j]==k:
                        a =1  
        if a==1:
            return True
        else:
            return False
    else:
        return False
 

Он показывает превышение лимита времени для тестового примера с nums = [1,1,1,1,1,1,1....
Что не так с этим решением?

Ответ №1:

Я думаю, что ваша сложность равна O (n ^ 2), и здесь вам нужно использовать концепцию hashmap. Для python используйте dictionary