두 개의 연결된 정수 목록이 제공됩니다. 비 공통 요소를 포함하는 연결된 목록을 반환하라는 요청을 받았습니다. 나는 O (n^2)에서 그것을하는 법을 알고 있습니다. O (n)에서 그것을하는 방법은 무엇입니까?두 개의 연결된 목록의 드문 요소를 얻는 방법은 무엇입니까?
답변
분류되지 않은 경우 O (n^2)보다 더 좋아질 수 있다고 생각하지 않습니다. 그러나, 당신은 그들을 정렬하여 더 잘할 수 있습니다 ... 당신은 합리적으로 빠른 시간에 정렬하고 O (nlogn)과 같은 것을 얻을 수 있습니다 (나는 그것이 될 것이라고 확신하지 않지만, 나는 그렇게 빨리 될 수 있다고 생각합니다. 당신은 올바른 알고리즘을 사용합니다).
O (n^2)보다 더 좋아질 수 있습니다. 해시 테이블과 관련된 다른 솔루션을 참조하십시오. –
O (n log n)에서 점근선 적으로 빠르게 링크 된 목록에서 현재 위치 병합을 수행 할 수 있습니다. 그래서 예, 다음 diffing 정렬 O (n 로그 n) 해결할 것입니다. 원래 목록을 수정할 수 없다면 O (n)이므로 O (n log n) 그대로 복사 할 수 있습니다. –
해시 테이블을 사용하십시오.
첫 번째 연결된 목록을 반복하고 해시 테이블에 들어온 값을 입력하십시오.
해시 테이블에없는 요소를 비 일반적인 요소 목록에 추가하여 두 번째 연결된 목록을 반복합니다.
해시 테이블에서 충돌이 없다고 가정하면이 솔루션은 O (n)이어야합니다.
빈 목록을 새로 만듭니다. 해시 테이블을 가지고 두 목록의 요소로 채 웁니다. 복잡성 n. 순차적으로 각 목록을 반복하고 반복하면서 해시 테이블에없는 요소를 새 목록에 넣습니다. 복잡성 n. 전반적인 복잡도 = n
도 n의 공간 복잡성이 있습니다. – PratLee
- 1. 두 개의 포인터가없는 연결된 목록의 루프가
- 2. 이중 연결된 목록의 복사본을 만드는 방법은 무엇입니까?
- 3. MySQL의 - 두 개의 연결된 테이블
- 4. 두 개의 연결된 테이블에 게시
- 5. Scheme에서 목록의 요소를 만들고 추가하는 방법은 무엇입니까?
- 6. 요즘 드문 파일 크기가 드문 이유는 무엇입니까?
- 7. Graphviz : 편평하지만 드문 드문 연결 그래프를 여러 줄로 나누십시오?
- 8. std :: list에서 두 개의 연속 요소를 비교하십시오.
- 9. 두 개의 인라인 요소를 몸체 너비에 맞추는 방법은 무엇입니까?
- 10. 두 개의 콘텐츠 크기 HTML 요소를 나란히 배치하는 방법은 무엇입니까?
- 11. 연결된 목록의 항목 이동
- 12. WPF - 목록의 요소를 반복하십시오.
- 13. 여러 개의 slideDowns가 두 개의 요소를 토글합니다
- 14. 두 개의 Int 값을 나누어 플로트를 얻는 올바른 방법은 무엇입니까?
- 15. 이 문자열 데이터에서 두 개의 데이터를 빠르게 얻는 방법은 무엇입니까?
- 16. jquery를 사용하여 두 개의 선택된 옵션 값을 얻는 방법은 무엇입니까?
- 17. 하나의 설치된 앱, 두 개의 실행기 아이콘을 얻는 방법은 무엇입니까?
- 18. 연결된 목록의 속도가 빨라 졌습니까?
- 19. 연결된 테이블에 두 개의 드롭 목록 추가
- 20. JQgrid : 두 개의 연결된 선택 드롭 다운
- 21. 두 개의 다른 텍스트 컨텍스트에 바인드 된 두 개의 다른 텍스트 상자를 얻는 방법은 무엇입니까?
- 22. 이 드문 드문 예를 들어
- 23. 목록의 특정 요소를 제거하는 방법
- 24. 클로저에 드문 드문 채워진 다차원 벡터?
- 25. Java에서 두 개의 배열을 혼합하는 방법은 무엇입니까?
- 26. 두 XML 파일의 요소를 병합하는 방법은 무엇입니까?
- 27. LINQ를 사용하여 목록의 목록 요소를 계산하는 방법은 무엇입니까?
- 28. 두 개의 BST를 효율적으로 병합하는 방법은 무엇입니까?
- 29. dom 요소를 얻는 가장 빠른 방법은 무엇입니까?
- 30. QWebView/QWebPage에서 포커스 요소를 얻는 방법은 무엇입니까?
이 숙제가 있습니까? 그렇다면 태그를 붙이십시오. 또한 입력 목록이 정렬되어 있습니까? – Pace