30/09/2018, 17:19
Kiểm tra các phần tử có trong mảng (list) nhanh nhất
Các bạn cho mình hỏi cách nào để kiêm tra các phần tử trong mảng mảng (list) tối ưu và nhanh không à.
cụ thể:
Mảng A: [‘cam’, ‘quyt’, ‘xoai’]
Mảng B [‘dua’, ‘saurieng’, ‘cam’, ‘quyt’, ‘bo’, ‘chuoi’, ‘xoai’]
giờ kiemr tra xem các phần tử ở mảng A có tồn tại trong mảng B không.
Cách đọc từng phần tử thì có vẻ không tối ưu và nhanh lắm, vì mảng B của mình có thể có nhiều phần tử lắm.
Nhờ các bạn chỉ mình cách làm với.
Cảm ơn
Bài liên quan
Đọc từng phần tử và hi vọng vào tốc độ xử lý của máy tính
Ý bạn có phải làm xét xem tập hợp A có phải là con của tập hợp B (kiểm tra xem tất cả các phần tử của A có tồn tại hết trong B hay không) ? Nếu là kiểm tra theo kiểu tập hợp thì bạn thử theo cách của mình:
Vì kiểm tra tập hợp, nên mình đảm bảo là đã loại bỏ các phần tử bị trùng trong mỗi vector, và vector con cần kiểm tra phải có số lượng phần tử nhỏ hơn vector kia.
Bạn sắp xếp mảng kiểu string tương tự như kiểu số nguyên.
Dùng
unordered_set
trongC++11
bản chất của nó là 1 hash table nên thời gian tìm kiếm làO(1)
####code tham khảo
Cảm ơn bác.
Mà cái của e làm là C#.
Thế thì dùng
Dictionary
C# có hàm như vậy k bác
Sử dụng constain hay constainof có phải nhanh không.
Mấy cách trên cũng là dùng loop đọc từng phần tử còn gì
C# có kiểu dữ liệu
HashSet
tương tự