Interviewfragen bitte beantworten
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>