3sum leetcode mã trăn
Xin chào những người đam mê LeetCode 👋. Hôm nay chúng ta sẽ thảo luận về một trong những vấn đề phổ biến trên LeetCode Báo cáo vấn đềCho mảng 5 gồm n số nguyên, có các phần tử 6, 7, 8 trong 5 sao cho 0 không? Lưu ý rằng bộ giải pháp không được chứa bộ ba trùng lặp Hạn chế
ví dụví dụ 1
ví dụ 2
ví dụ 3
Phân tíchBài toán này là phần mở rộng của bài toán Hai Tổng. Ở đây, 1 bằng không. Do đó, nếu 0, thì 3. Điều này về cơ bản làm giảm vấn đề này thành Hai TổngVì vậy, chúng ta phải tìm các bộ ba như vậy có tổng bằng 0 và không được trùng lặp trong câu trả lời Tiếp cậnCách tiếp cận ngây thơ là kiểm tra từng bộ ba có thể. Điều này có thể được thực hiện thông qua ba vòng lặp lồng nhau, điều này sẽ làm cho độ phức tạp của thời gian tỷ lệ thuận với lũy thừa bậc ba của số phần tử trong mảng i. e. , O(n3) Chúng ta có thể làm tốt hơn không 🤔?
Chúng tôi đang quét toàn bộ mảng giữ cố định một phần tử. Chúng tôi đang làm điều này cho mọi phần tử trong mảng. Vì vậy, chúng tôi đang quét từng phần tử của mảng 0 số lần. Và chúng tôi đang làm điều này trong 0 lần, do đó độ phức tạp thời gian trong trường hợp xấu nhất sẽ là O(n2 + n * log n) giảm xuống còn O(n2)Độ phức tạp không gianChúng tôi không sử dụng bất kỳ cấu trúc dữ liệu nào cho các tính toán trung gian, do đó độ phức tạp của không gian là O(1) Javacon trănJavaScriptKotlinHoàn thành mãPhần kết luậnChúc mừng 👏. Chúng tôi đã giải quyết thêm một vấn đề từ LeetCode Tôi hy vọng bạn thích bài viết này. Hãy chia sẻ suy nghĩ của bạn về điều này Bạn có thể tìm thấy mã nguồn hoàn chỉnh trên kho lưu trữ GitHub của tôi. Nếu bạn thích những gì mình học được, hãy thoải mái rẽ nhánh 🔪 và gắn dấu sao ⭐ cho nó Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không? Cho mảng S gồm n số nguyên, trong S có các phần tử a, b, c sao cho a + b + c = 0 không? Ghi chú. Bộ giải pháp không được chứa bộ ba trùng lặp Ví dụ: đã cho mảng S = [-1, 0, 1, 2, -1, -4], Một bộ giải pháp là. [ [-1, 0, 1], [-1, -1, 2] ] URL. https. //leetcode. com/problems/3sum/ 4 |