> 백엔드 개발 > PHP 튜토리얼 > javascript - 배열이 있습니다. 그 배열에서 3개의 정수 ABC를 선택하고, 3개의 정수 ABC의 합을 0으로 둡니다. 그러한 배열은 몇 개 있습니까?

javascript - 배열이 있습니다. 그 배열에서 3개의 정수 ABC를 선택하고, 3개의 정수 ABC의 합을 0으로 둡니다. 그러한 배열은 몇 개 있습니까?

WBOY
풀어 주다: 2016-08-20 09:04:06
원래의
1035명이 탐색했습니다.

면접질문 답변해주세요

답글 내용:

면접질문 답변해주세요

전형적인 3Sum, 원문은 leetcode https://leetcode.com/problems...

에서 보실 수 있습니다.

JavaScript의 경우 내 솔루션 https://github.com/hanzichi/l...을 확인하실 수 있습니다.

이 질문 역시 일자리 창출 기관의 자오 씨와 윈터 씨가 직접 작성한 것입니다. https://zhuanlan.zhihu.com/p/...

가장 좋은 방법은 O(n^2) 양측 강제인 것 같습니다

확실히 3개의 정수입니다...삼중 루프 열거를 수행하세요...

@xiaoboost가 말했듯이 간단한 무차별 대입 방법을 사용하여 수행할 수 있습니다.

<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>
로그인 후 복사

결과:

<code>22</code>
로그인 후 복사

내가 답변한 질문: 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>
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿