217. chứa python trùng lặp
Nội dung Show
Vấn đề LeetCodeCho một mảng số nguyên nums, trả về true nếu bất kỳ giá trị nào xuất hiện ít nhất hai lần trong mảng và trả về false nếu mọi phần tử đều khác biệt Giải phápBài này là tìm xem trong mảng có phần tử nào trùng nhau không, có vẻ dễ lắm, thử xem nào Giải pháp C#❌Solution1 – IndexOf (Không được đề xuất – quá chậm) Trong lần thử đầu tiên của chúng tôi, hãy sử dụng phép lặp đơn giản và sử dụng 【Array. Chức năng IndexOf】 Nếu nó trả về bất kỳ chỉ mục nào (không tìm thấy sẽ trả về -1), thì trả về true (có phần tử trùng lặp trong mảng)
thời gian chạy. 889ms、1045ms、980ms ≈ Nhanh hơn 10~15% … Thời gian phức tạp. O(n2) ➡ Mảng. IndexOf ≈ O(n) * Đối với phép lặp O(n) ⭐Giải pháp2 – HashSet
thời gian chạy. 197ms、244ms、187ms ≈ Nhanh hơn 70~90% Thời gian phức tạp. O(n) ➡ Bộ băm. Chứa ≈ O(1) * Đối với phép lặp O(n) Giải pháp3 Có một giải pháp khác là sử dụng 【Array. Sort】hàm để sắp xếp các số Sau đó, chúng ta có thể kiểm tra mảng bằng cách lặp lại, nếu bất kỳ phần tử nào giống với giá trị chỉ mục tiếp theo, chúng ta có thể biết có phần tử trùng lặp
thời gian chạy. 294ms、283ms、311ms Giải pháp Java⭐Giải pháp1 – HashSet
thời gian chạy. 9ms、6ms、11ms Giải pháp 2 – Mảng. loại
thời gian chạy. 28ms、24ms、30ms ≈ Nhanh hơn 15~25% Giải pháp Python3Giải pháp1 – đặt
thời gian chạy. 510ms、487ms、455ms Giải pháp1. 1 – Từ điển có thể đạt được hiệu quả tương tự
Giải pháp 2 – sắp xếp danh sách trước
thời gian chạy. 760ms、959ms、654ms Giải pháp JavaScriptGiải pháp1 – đặt ________số 8thời gian chạy. 73ms、116ms、114ms Giải pháp 2 – sắp xếp danh sách trước
Chi tiết nộpC#JavaPython3JavaScriptPhần kết luận🧡Nếu giải pháp của tôi hữu ích, đó là vinh dự của tôi 🧡Các bạn có thể ủng hộ mình bằng cách click quảng cáo nhé, Thanks nhiều ✅Nếu bạn có bất kỳ vấn đề gì về giải thích hoặc bạn cần giải pháp ngôn ngữ lập trình khác, vui lòng cho tôi biết (để lại nhận xét hoặc liên hệ với tôi qua Messenger đều được. ) |