Làm cách nào để so sánh hai mảng bằng nhau trong php?
Bây giờ bạn có thể cố gắng giải quyết vấn đề này từ đây. bằng cách áp dụng hai cách tiếp cận trên. Nếu bị mắc kẹt, sau đó bạn có thể tìm thấy giải pháp dưới đây 1. Sắp xếp mảngĐể kiểm tra xem hai mảng có bằng nhau hay không, chúng ta phải so sánh sự xuất hiện chính xác của từng phần tử trong cả hai mảng có giống nhau không Tuy nhiên, vấn đề là các giá trị của các mảng có thể ở bất kỳ hoán vị nào không phụ thuộc vào nhau Nếu chúng tôi có thể sắp xếp chúng theo bất kỳ cách nào, thì chúng tôi sẽ dễ dàng kiểm tra số lần xuất hiện của chúng. Vì vậy, chúng tôi sẽ sắp xếp cả hai mảng và duyệt tuyến tính trên nó trong khi so sánh từng phần tử của mảng. Nếu tại bất kỳ chỉ số nào sau khi sắp xếp chúng không khớp thì chúng tôi có thể trả lại 6 từ đó nếu không, chúng tôi sẽ trả lại 7Các bước giải pháp
Mã giả
Phân tích độ phức tạp Thời gian phức tạp. O(n log n) sử dụng sắp xếp hợp nhất. Sử dụng một thuật toán sắp xếp bậc hai khác sẽ làm cho độ phức tạp thời gian O(n²) Độ phức tạp không gian. Ô(1) Ý tưởng quan trọng để suy nghĩ
2. Sử dụng hàm bămNếu chúng ta suy nghĩ lại, chúng ta có thể tối ưu hóa hơn nữa độ phức tạp về thời gian của phương pháp trước đó, nếu bạn nhận thấy rằng chỉ có số lần xuất hiện của mỗi phần tử là có liên quan đến chúng ta để kiểm tra sự bằng nhau của hai mảng Vì vậy, nếu tồn tại một giá trị trong 8 thì nó phải tồn tại trong 9 với cùng số lần xuất hiện trong mỗi giá trị đóĐiều này làm tôi nhớ đến một cấu trúc dữ liệu có tên là 0 còn được gọi là 1 hoặc 2. Chúng ta có thể sử dụng HashMap để lưu trữ các phần tử và sự xuất hiện của chúng. Bây giờ chúng ta có thể chỉ cần lặp lại mảng thứ hai và giảm số lượng xuống một cho mỗi phần tửcác bước giải quyết
Mã giả 2Phân tích độ phức tạp Thời gian phức tạp. Trên). Bạn có thể sử dụng bản đồ không có thứ tự. Sử dụng Bản đồ được sắp xếp có thể hạ độ phức tạp thời gian thành O(n log n) đối với các giá trị lớn của n Độ phức tạp không gian. Trên) Ý tưởng quan trọng để suy nghĩ
So sánh các phương pháp tiếp cận khác nhauCác vấn đề được đề xuất để giải quyết
Nếu bạn có thêm bất kỳ cách tiếp cận nào hoặc bạn tìm thấy lỗi/lỗi trong các giải pháp trên, vui lòng bình luận xuống bên dưới Làm cách nào để khớp hai mảng trong PHP?Hàm array_intersect() so sánh giá trị của hai (hoặc nhiều) mảng và trả về kết quả khớp. Hàm này so sánh các giá trị của hai hoặc nhiều mảng và trả về một mảng chứa các mục từ mảng1 có trong mảng2, mảng3, v.v.
Làm cách nào để kiểm tra các giá trị mảng bằng nhau trong PHP?Hàm array_unique() "lấy một mảng đầu vào và trả về một mảng mới không có giá trị trùng lặp. " Không, 1 sẽ được trả về nếu TẤT CẢ giá trị trong mảng giống nhau. |