Chứa giải pháp leetcode trùng lặp javascript
Xin chào. Khi tôi tiếp tục tìm kiếm công việc của mình, tôi đang thực hành các câu hỏi về thuật toán của mình trên Leetcode. Vì vậy, tôi nghĩ rằng tôi sẽ viết blog về một số vấn đề về Leetcode khi tôi giải quyết chúng Show
Là một người tốt nghiệp Bootcamp, tôi không được thực hành nhiều về các thuật toán, vì vậy, việc nhận ra các mẫu và sai sót là một trải nghiệm rất thú vị và đôi khi khiến tôi nản lòng, tối ưu hóa mã của tôi để nhanh hơn (nhìn bạn Big-O), học cách phá vỡ . Tôi đã thực hành chúng bằng JavaScript Vì tôi còn khá mới với các vấn đề về thuật toán, nên tôi đã bắt đầu với Bộ sưu tập dễ dàng các câu hỏi phỏng vấn hàng đầu của họ. Vì vậy, trong Chứa trùng lặp Cho một mảng số nguyên ví dụ Input: nums = [1,2,3,1] Đơn giản, nếu bất kỳ số nào trong mảng xuất hiện nhiều lần trong mảng, tôi cần trả về Đầu tiên, tôi nghĩ rằng tôi có thể lặp qua mảng và ở mỗi trường hợp, tôi lặp qua một vòng lặp khác của các số nguyên còn lại và so sánh chúng để xem có số nào bằng nhau không (===). Tuy nhiên, theo hiểu biết mới bắt đầu của tôi về Big-O, điều này sẽ mang lại cho tôi độ phức tạp thời gian không thuận lợi là O(n²) Sau đó, tôi nghĩ rằng tôi có thể tạo một đối tượng và đếm xem một số trong mảng xuất hiện bao nhiêu lần. Bằng cách này, sau đó tôi có thể kiểm tra xem liệu có bất kỳ số nào có tổng số lớn hơn 1 không. Nếu vậy, tôi có thể trả lại var containsDuplicate = function(nums) { Và điều đó hiệu quả. giải quyết. Và độ phức tạp về thời gian sẽ là O(2n), nhanh hơn kế hoạch ban đầu của tôi. Tuy nhiên, tôi tự hỏi liệu tôi có thể dọn sạch thứ này và cải thiện một chút thời gian chạy Big-O của mình không? Điều tôi nhận ra là tôi đã tạo một đối tượng khi tôi lặp qua mảng và tôi có thể trả về var containsDuplicate = function(nums) { Bây giờ, điều đó có vẻ tốt hơn rất nhiều. Và nó chạy với độ phức tạp thời gian O(n) khá. Tôi tưởng tượng vẫn còn nhiều cách tốt hơn và nhanh hơn để giải quyết vấn đề này, vì vậy hãy để lại nhận xét cho tôi nếu mã của tôi có thể được cải thiện hoặc hướng dẫn tôi một cách mới để giải quyết vấn đề này (Tôi rất thích điều đó. ) Tôi hy vọng điều này sẽ giúp ích cho bạn nếu bạn gặp khó khăn khi giải quyết vấn đề này và tìm kiếm thêm các giải pháp Leetcode trong tương lai Cho 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 Dung dịchĐộ phức tạp về thời gian. O(n)
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Nhận xét hàng đầu (0)Vương miệnSắp xếp thảo luận
Đặt mua
Người dùng cá nhân đáng tin cậy Tạo mẫuMẫu cho phép bạn nhanh chóng trả lời Câu hỏi thường gặp hoặc lưu trữ đoạn mã để sử dụng lại Gửi bản xem trước Bỏ qua Quy tắc ứng xử • Báo cáo lạm dụng Bạn có chắc chắn muốn ẩn bình luận này? Làm cách nào để kiểm tra các mục trùng lặp trong JavaScript?Sử dụng phương thức indexOf()
. Nếu chúng không khớp, điều đó có nghĩa là phần tử trùng lặp. Tất cả các phần tử như vậy được trả về trong một mảng riêng biệt bằng cách sử dụng phương thức filter().
Làm cách nào để kiểm tra xem mảng có chứa số trùng lặp trong JavaScript không?Để kiểm tra xem một mảng có chứa các bản sao không. phương thức some() để lặp qua mảng. Kiểm tra xem chỉ số của lần xuất hiện đầu tiên của giá trị hiện tại KHÔNG bằng chỉ mục của lần xuất hiện cuối cùng của nó. Nếu điều kiện được đáp ứng, thì mảng chứa các bản sao
Làm cách nào để tránh JavaScript trùng lặp?Để loại bỏ điều này, bạn có thể sử dụng một số hàm như phương thức filter(), set(), reduce(), forEach() và indexof(). Using these functions, you can remove duplicates from JavaScript arrays.
Làm cách nào để tìm các giá trị trùng lặp trong đối tượng bằng JavaScript?Tìm các giá trị trùng lặp trong các đối tượng bằng Javascript. const trùng lặp = mảng. bản đồ ( (el, i) => { trả về mảng. tìm ( (phần tử, chỉ mục) => { if (i. == |