알고리즘을 사용하여 해결한 Java 문제(해시맵 관련 문제)
阿神
阿神 2017-05-27 17:41:09
0
3
632

leetcode의 첫 번째 질문, 이 방법은 O(n) 복잡도 솔루션을 달성할 수 있습니다

질문에는 int[]가 필요합니다(예: nums = [2, 7, 11, 15] 및 target = 9).
합계가 목표 값인 두 개의 숫자가 있는 경우, 예를 들어 nums[0] + nums[1] = 2 + 7 = 9
[0, 1]을 반환합니다.

다음 솔루션을 사용할 때 약간의 의문이 듭니다. 즉, 새로운 해시맵이 생성되었지만 값이 할당되지 않은 경우 이 경우 질문 요구 사항을 어떻게 달성합니까?

으아악
阿神
阿神

闭关修行中......

모든 응답(3)
phpcn_u1582

for 루프의 map.put()이 할당이 아닌가요? ? ?

曾经蜡笔没有小新

질문에서는 두 숫자의 합이 목표 값과 주어진 값이어야 하며, 최소 두 숫자를 순회해야 합니다.
(1) 먼저 초기화하면 알고리즘 시간 O(n)이 걸립니다. 값이 정확할 때 알고리즘 시간은 O(k), 0 이 상황의 실현은 다음과 같습니다.

  1) 먼저 지도를 초기화하고,
  2) 첫 번째 숫자 2를 탐색하고, 대상 - 2 = 9 - 2 = 7
  3) 지도에도 7이 있다고 판단하여 올바른 결과를 반환합니다.
참고: 첫 번째 정확한 숫자로 이동

 
(2) 초기화되지 않으면 정지하기 전에 두 번째 정확한 숫자로 이동합니다. 알고리즘 시간은 O(k)(1<k<=n)입니다.
이 상황의 실현은 다음과 같습니다.

으아아아
小葫芦

아니요Key 的情况下,HashMap.containsKey(Key) 返回的是 false 不包括 Key.

으아악

생각보다 널 포인터 오류가 발생하지 않습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿