Xóa các bản sao khỏi mảng được sắp xếp PHP
Đưa ra một mảng được sắp xếp 31, loại bỏ các phần trùng lặp tại chỗ sao cho mỗi phần tử chỉ xuất hiện một lần và trả về độ dài mớiKhông phân bổ thêm không gian cho một mảng khác, bạn phải thực hiện việc này bằng cách sửa đổi mảng đầu vào tại chỗ với bộ nhớ bổ sung O(1) Làm rõ. Nhầm lẫn 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? Trong nội bộ bạn có thể nghĩ về điều này
Hạn chế
ví dụví dụ 1
ví dụ 2
Phân tíchVấn đề này đơn giản như mô tả của nó 😃. 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 phiên bản duy nhất của mỗi phần tử. Ngoài ra, chúng ta cần cập nhật mảng tại chỗ, 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 Cuối cùng, chúng ta phải trả về độ dài của mảng đã 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 phần tử trùng lặp sẽ liền kề nhau. cho e. g. , trong mảng 35 ta thấy tất cả các phần tử trùng đều nằm liền kề nhauChú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 -
Chúng tôi đang quét mảng một lần, do đó độ phức tạp về thời gian sẽ là 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ó 😛), nên độ phức tạp của không gian sẽ là O(1) Javacon trănJavaScriptKotlinHoàn thành mãSự kết luậnChú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 mảng 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ó 36 37 38 39 40 41 42 43 44 51 2 3 4 51 41____324 457 5 461 4621 2 3 4 51 48 24 50 26 52 468 54 468 56 468 3 59____326 61 62____5469
5____5521 5____5523 5 69 26 71
5____5527 5 461 4621 2 3 4 51 48 24 80_______5468____5584
5 6 5871 2 3 4 58____5588
1 2 3 4 58 89 08 91 921 2 3 4 58 1 2 3 4 57 51 2 3 4 51 97 26 991 2 3 4 500 991 2 3 4 500 991 2 3 4 504 991 2 3 4 506 991 2 3 4 506 991 2 3 4 506 991 2 3 4 512 991 2 3 4 512 1 2 3 4 515 51 2 3 4 51 1 2 3 4 518
5____5616
5____5618 5 461 4621 2 3 4 51 48 241 2 3 4 529 _______5468____431____5456 1 2 3 4 533 1 2 3 4 58____5588 588
1 2 3 4 502 Python31 2 3 4 538 1 2 3 4 539 1 2 3 4 540 1 2 3 4 541
1 2 3 4 542 1 2 3 4 543 1 2 3 4 544 1 2 3 4 545 1 2 3 4 546
1 2 3 4 58 1 2 3 4 548 1 2 3 4 58 1 2 3 4 550 1 2 3 4 58 1 2 3 4 552 1 2 3 4 58 3 1 2 3 4 555 1 2 3 4 556 1 2 3 4 556 24 1 2 3 4 559 1 2 3 4 555 1 2 3 4 556 1 2 3 4 556 261 2 3 4 564 5 6 1 2 3 4 555
1 2 3 4 58 1 2 3 4 569____456 1 2 3 4 571 4621 2 3 4 573____474
1 2 3 4 58 1 2 3 4 576 1 2 3 4 58 1 2 3 4 578 1 2 3 4 556 24 4571 2 3 4 58 461 1 2 3 4 584 1 2 3 4 585 1 2 3 4 573 462____3241 2 3 4 589 1 2 3 4 590 261 2 3 4 592
51 2 3 4 594 51 2 3 4 596 51 2 3 4 598 5____54600 5 3 46031 2 3 4 556 4605 4606 26 4608 468 46101 2 3 4 556 4612 4681 2 3 4 578____54606 1 2 3 4 556 26
1 2 3 4 58____54619 1 2 3 4 58____54621 1 2 3 4 58____54623 1 2 3 4 58____54625 1 2 3 4 58 46101 2 3 4 556 46291 2 3 4 590 26 46321 2 3 4 58 1 2 3 4 578____54606 1 2 3 4 556 261 2 3 4 58 _______48____54640 1 2 3 4 58 461 1 2 3 4 584 1 2 3 4 585 1 2 3 4 573 462____324 4648 5 46121 2 3 4 556 4652
1 2 3 4 58 6 1 2 3 4 578
4656 46571 2 3 4 556 4659 26 991 2 3 4 500 991 2 3 4 500 991 2 3 4 504 991 2 3 4 506 991 2 3 4 506 991 2 3 4 506 991 2 3 4 512 991 2 3 4 512 46321 2 3 4 555 1 2 3 4 556 4680 4681
4682 46831 2 3 4 555 1 2 3 4 556 4686
4687 461 1 2 3 4 584 1 2 3 4 585 1 2 3 4 573 46921 2 3 4 58 4694 462 4696 4697 46981 2 3 4 556 456 27
_______48____55203 C# 5204 5205 58 5207
01 52091 2 3 4 58 _______48____55212 _______48____55214 _______48____55216 1 2 3 4 58 08 1 2 3 4 51 1 2 3 4 52 1 2 3 4 51 52221 2 3 4 51 1 2 3 4 56 1 2 3 4 58 1 2 3 4 57 5 5____55229 5____55231 5 3 4 468 6 71 2 3 4 58 51 2 3 4 51 5241 34 1 2 3 4 51 36 5 51 2 3 4 52 51 2 3 4 51 1 2 3 4 55 5 5 461 4621 2 3 4 51 464 5 468____55259 468 5261 468____55263 468 3 5266 62____5469 5 5____55271 5____55273 5____55275 5____55277 5____55279 5 5____5527 5 461 4621 2 3 4 51 582_______5468____5584 1 2 3 4 58 5 6 5871 2 3 4 58____5588 1 2 3 4 58 1 2 3 4 58 89 08 91 58011 2 3 4 58 1 2 3 4 57 51 2 3 4 51 5806 51 2 3 4 51 5809 5 5____5616
5____5618 5 461 4621 2 3 4 51 453_______5468____55821____5456 1 2 3 4 533 1 2 3 4 58____5588 588
5827Javascript 5828
5829 5205
5831 5832 5833 5834 46861 2 3 4 57 1 2 3 4 58____55229 _______48____55231 1 2 3 4 58 3 5843 5 6 7
1 2 3 4 58____55848 5849 34 5851
1 2 3 4 58 1 2 3 4 52 1 2 3 4 58____55848 1 2 3 4 55 1 2 3 4 58 461 462 5848 5861
5____55259 5____55261 5____55263 5 3 5266 468 469
1 2 3 4 58____55874 1 2 3 4 58____55876 1 2 3 4 58____55277 1 2 3 4 58____55279
1 2 3 4 58____5527 1 2 3 4 58 461 462 5848 5887 5____5584
1 2 3 4 58 6 587 588
5848 58951 2 3 4 58____55848 1 2 3 4 518
1 2 3 4 58 08001 2 3 4 58____55833 _______48____5616
1 2 3 4 58____5618 1 2 3 4 58 461 462 5848 0811 0812 0813 4561 2 3 4 533
0816
0817Đầu ra 1 2 3 4 5 Độ phức tạp về thời gian. O(n) Phương pháp 2. (Không gian thêm không đổi) Chỉ cần duy trì một chỉ mục riêng cho cùng một mảng như được duy trì cho các mảng khác nhau trong Phương pháp 1 Thực hiện C++ 0818 0819 58 08 61
5831 5832 58331 2 3 4 51 1 2 3 4 52 1 2 3 4 51 1 2 3 4 54 1 2 3 4 51 1 2 3 4 56 1 2 3 4 57 1 2 3 4 58 3 5843 5 6 7
_______48____70840 1 2 3 4 58 1 2 3 4 51 1 2 3 4 55
1 2 3 4 58 0845_______48____70847 1 2 3 4 58 461 4621 2 3 4 51 0852 5 3 5266 468 0857
_______48____70859
1 2 3 4 58 6 587 588
5891 2 3 4 51 0811 2 3 4 57 1 2 3 4 58 1 2 3 4 51 08701 2 3 4 58 1 2 3 4 51 088 089 610 089 612
1 2 3 4 58 08001 2 3 4 58____55833 _______48____5616
1 2 3 4 58____5618 1 2 3 4 58 461 4621 2 3 4 51 0811 5 455 456 457
1 2 3 4 58 6 1 2 3 4 500 588Java 0899 5205
01 61021 2 3 4 57 _______48____55831 1 2 3 4 58____55832 1 2 3 4 58____55833 1 2 3 4 58 08 1 2 3 4 51 1 2 3 4 52 1 2 3 4 51 1 2 3 4 54 1 2 3 4 51 1 2 3 4 56 1 2 3 4 58 1 2 3 4 57 5 3 23 24 25 26 27 468 6 7 6130 5 0840 51 2 3 4 51 41____324 457 6130 5 0845 5____70847 5 461 4621 2 3 4 51 48 24 6149 26 52 468 3 6154 26 61 62 0857 6130 5____56161____326 71 6130 5 6 5871 2 3 4 58____5588 1 2 3 4 58 1 2 3 4 58 89 08 91 61751 2 3 4 58 1 2 3 4 57 51 2 3 4 51 97 26 991 2 3 4 500 991 2 3 4 500 991 2 3 4 504 991 2 3 4 506 991 2 3 4 506 991 2 3 4 506 991 2 3 4 512 991 2 3 4 512 1 2 3 4 515 51 2 3 4 51 1 2 3 4 518 5 5____5616 4505 5____5618 5 461 4621 2 3 4 51 4512 24____54514 4515 4516______54561 2 3 4 533 1 2 3 4 58____5588 588
4522Python3
C# 4523 5205 58 5207
01 45281 2 3 4 58 _______48____55212 _______48____55214 _______48____55216 1 2 3 4 58 08 1 2 3 4 51 1 2 3 4 52 1 2 3 4 51 52221 2 3 4 51 1 2 3 4 56 1 2 3 4 58 1 2 3 4 57 5 5 3 4 468 6 71 2 3 4 58 5____54555 5____54557 51 2 3 4 51 1 2 3 4 55 1 2 3 4 58 5 0845 5____54565 5____54567 5 461 4621 2 3 4 51 464 468 3 467 62 08571 2 3 4 58 5____545801 2 3 4 58 5 6 5871 2 3 4 58____5588 1 2 3 4 58 1 2 3 4 58 89 08 91 58011 2 3 4 58 1 2 3 4 57 51 2 3 4 51 4597 4598____54599 51 2 3 4 51 5809 5 5____5616
5____5618 5 461 4621 2 3 4 51 453_______5468____55821____5456 1 2 3 4 533 1 2 3 4 58____5588 588
1 2 3 4 5020 Javascript 58281 2 3 4 5022 5205
_______48____55831 1 2 3 4 58____55832 1 2 3 4 58____55833 1 2 3 4 58____55834 1 2 3 4 5032 5 3 4 468 6 7
5 0840 5____55848 1 2 3 4 55
5 0845 5____70847 5 461 1 2 3 4 5050 468 3 467 62 0857
5____54580
5 6 5871 2 3 4 58____5588
1 2 3 4 58 5____55848 1 2 3 4 5066 5____55848 1 2 3 4 518
5____5616
5____5618 5 461 1 2 3 4 5076 _______5468____4078____5456 1 2 3 4 533
1 2 3 4 5081 0817Đầu ra 1 2 3 4 5 Độ phức tạp về thời gian. O(n) Bài viết này được đóng góp bởi Sahil Chhabra. Nếu bạn thích GeeksforGeeks và muốn đóng góp, bạn cũng có thể viết một bài báo bằng cách sử dụng write. chuyên viên máy tính. org hoặc gửi bài viết của bạn tới review-team@geeksforgeeks. tổ chức. Xem bài viết của bạn xuất hiện trên trang chính của GeeksforGeeks và trợ giúp các Geeks khác. |