Heim >Backend-Entwicklung >PHP-Tutorial >javascript - Es gibt ein Array. Wählen Sie daraus drei ganze Zahlen ABC aus und lassen Sie die Summe der drei ganzen Zahlen ABC gleich 0 sein. Wie viele solcher Arrays gibt es?

javascript - Es gibt ein Array. Wählen Sie daraus drei ganze Zahlen ABC aus und lassen Sie die Summe der drei ganzen Zahlen ABC gleich 0 sein. Wie viele solcher Arrays gibt es?

WBOY
WBOYOriginal
2016-08-20 09:04:061037Durchsuche

Interviewfragen bitte beantworten

Antwortinhalt:

Interviewfragen bitte beantworten

Typisch 3Sum, die Originalfrage ist auf leetcode https://leetcode.com/problems... verfügbar

Für JavaScript können Sie sich meine Lösung https://github.com/hanzichi/l... ansehen

Diese Frage wurde auch von Herrn Zhao und Winter von der Job Creation Agency handgeschrieben. Sie können sie unter https://zhuanlan.zhihu.com/p/... nachlesen.

Die beste Methode scheint das zweiseitige Erzwingen von O(n^2) zu sein

Es sind definitiv 3 Ganzzahlen...führen Sie einfach die Dreifachschleifenaufzählung durch...

Wie @xiaoboost sagte, kann dies mit einfachen Brute-Force-Methoden erfolgen:

<code class="python">import itertools

def nsum(lst, n, target):
    count = 0
    for c in itertools.combinations(lst, n):
        if sum(c) == target:
            count += 1
    return count


if __name__ == '__main__':
    lst = [-1, 3, -2, 7, -4, -3, 6, 9, -2, -2, 1, 1, 0, 10, -1, 9, 8, -12]
    print(nsum(lst, 3, 0))</code>

Ergebnis:

<code>22</code>

Fragen, die ich beantwortet habe: Python-QA

<code class="python">from itertools import combinations

def sum_is_sth(lst, sth=0, cnt=3):
    return sum([1 for sub_lst in combinations(lst, cnt) if sum(sub_lst) == sth])</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn