Hướng dẫn leetcode remove duplicates from sorted array python - leetcode loại bỏ các bản sao khỏi python mảng được sắp xếp
Xin chào những người hạnh phúc 👋! Hãy cùng nhìn vào một vấn đề khác nhau ngày hôm nay. Show
Báo cáo vấn đềCho một mảng được sắp xếp Không phân bổ thêm không gian cho một mảng khác, bạn phải làm điều này bằng cách sửa đổi mảng đầu vào tại chỗ với bộ nhớ thêm O (1).O(1) extra memory. Làm rõ: bối rối tại sao giá trị trả về là một số nguyên nhưng câu trả lời của bạn là một mảng? Lưu ý rằng mảng đầu vào được truyền vào theo tham chiếu, có nghĩa là sửa đổi cho mảng đầu vào cũng sẽ được người gọi biết. Trong nội bộ bạn có thể nghĩ về điều này:
Constraints:
Ví dụVí dụ 1:
Ví dụ 2:
Phân tíchVấn đề này là thẳng như mô tả của nó là. Chúng tôi sẽ được cung cấp một mảng được sắp xếp có chứa các bản sao và chúng tôi chỉ cần giữ một thể hiện duy nhất của mỗi yếu tố. Ngoài ra, chúng ta cần cập nhật mảng tại chỗ, điều đó có nghĩa là chúng ta phải thực hiện tất cả các thao tác trong cùng một mảng mà không sử dụng bất kỳ cấu trúc dữ liệu nào.in-place which means we have to do all the manipulations in the same array without using any data structure. Cuối cùng, chúng ta phải trả về chiều dài của mảng được cập nhật. Cách tiếp cậnMột điều quan trọng trong câu hỏi là mảng được sắp xếp. Điều này có nghĩa là tất cả các yếu tố trùng lặp sẽ liền kề nhau. Ví dụ, trong mảng 1, chúng ta thấy tất cả các yếu tố trùng lặp liền kề nhau.the array is sorted. This means that all the duplicate elements will be adjacent to each other. For e.g., in the array 1, we see all the duplicate elements are adjacent to each other. Chúng ta có thể sử dụng thuộc tính này của mảng được sắp xếp có chứa các bản sao để giải quyết câu hỏi này bằng các bước sau -
Độ phức tạp về thời gianChúng tôi đang quét mảng một lần, do đó độ phức tạp của thời gian sẽ là O (n).O(n). Độ phức tạp không gianVì chúng tôi bị cấm sử dụng cấu trúc dữ liệu bên ngoài (và chúng tôi không sử dụng nó), độ phức tạp không gian sẽ là O (1).O(1). Mã sốJava
Python
JavaScript
Kotlin
Hoàn thành mã
Hoàn thành mãSự kết luận Xin chúc mừng! Trong bài đăng này, chúng tôi đã giải quyết một vấn đề dễ dàng từ LeetCode liên quan đến Array. 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 đầy đủ trên kho lưu trữ GitHub của tôi. Nếu bạn thích những gì bạn học, hãy thoải mái và sao. Làm cách nào để loại bỏ các bản sao khỏi một mảng được sắp xếp trong Python?Khoa học dữ liệu thực tế sử dụng Python.. Nếu danh sách trống, hãy trả lại 0 .. Nếu không, ban đầu lấy trước = phần tử đầu tiên của A. và xác định độ dài = 0 .. Đối với I: = 1 đến N-1, làm. Nếu một [i] không giống như trước, thì. Độ dài: = Độ dài + 1. Prev: = A [i]. Trở lại chiều dài .. Làm cách nào để loại bỏ các bản sao khỏi một mảng tại chỗ?Tạo một Temp mảng phụ trợ [] để lưu trữ các yếu tố duy nhất .. Mảng đầu vào Traverse và một lần sao chép các phần tử duy nhất của ARR [] thành TEMP [].Cũng theo dõi số lượng của các yếu tố độc đáo.Hãy để số này là J .. Sao chép các phần tử J từ temp [] sang mảng [] và trả lại j .. Làm thế nào để bạn tìm và loại bỏ các bản sao khỏi một danh sách trong Python?Nếu thứ tự của các phần tử không quan trọng, chúng ta có thể loại bỏ các bản sao bằng phương thức đã đặt và hàm độc đáo () numpy.Chúng ta có thể sử dụng các hàm gấu trúc, đặt hàng, giảm hàm (), đặt phương thức + sort () và các phương pháp lặp để giữ thứ tự của các phần tử.using the Set method and the Numpy unique() function. We can use Pandas functions, OrderedDict, reduce() function, Set + sort() method, and iterative approaches to keep the order of elements.
Làm thế nào để bạn loại bỏ các bản sao khỏi một bộ?Approach:.. Lấy một bộ .. Chèn tất cả các phần tử mảng trong tập hợp.Đặt không cho phép các bản sao và các bộ như LinkedHashset duy trì thứ tự chèn để nó sẽ loại bỏ các bản sao và các phần tử sẽ được in theo cùng thứ tự mà nó được chèn .. Chuyển đổi tập hợp được hình thành thành mảng .. Các yếu tố in của tập hợp .. |