Tôi có 200 mảng số nguyên dương được sắp xếp (một số trong số chúng có hơn một triệu số). Tôi cần phải tìm số đầu tiên tồn tại trong mọi mảng. Bạn đề nghị điều gì?cách AND và một số lượng lớn các mảng số?
6
A
Trả lời
3
- Giữ chỉ mục trên mọi mảng.
- Bắt đầu với số đầu tiên của mảng đầu tiên làm tham chiếu.
- Là số đầu tiên của mảng thứ n thấp hơn tham chiếu, tăng chỉ mục của nó.
- Là số đầu tiên của mảng thứ n bằng tham chiếu, tăng n và tiếp tục - mảng tiếp theo.
- Là số đầu tiên của mảng thứ n cao hơn tham chiếu, sử dụng số đó làm tham chiếu và bắt đầu lại.
- Nếu n == 201, tham chiếu của bạn tồn tại trong mọi mảng.
Edit: một ví dụ mã:
while n < len(data):
item = data[n][indices[n]]
if item < reference:
indices[n] += 1
elif item == reference:
n += 1
elif item > reference:
reference = item
n = 0
print reference
1
Bạn có thể thực hiện hợp nhất k trên các mảng và kiểm tra phần tử đầu tiên xuất hiện k
lần.
Cách khác là tạo histogram và chọn phần tử đầu tiên xuất hiện k
thời gian trong biểu đồ. Một biểu đồ trong java có thể được thực hiện dễ dàng bằng một Map<Element,Integer>
Cả hai giải pháp là O(kn)
nơi k
là số mảng và n
là kích thước trung bình của một mảng, vì vậy nó được về cơ bản tuyến tính trong kích thước của đầu vào.
Các vấn đề liên quan
- 1. Cách lấy số lớn nhất từ số lượng lớn các số?
- 2. là SSIS chèn số lượng lớn giống như một SỐ LƯỢNG LỚN Chèn
- 3. oracle số lượng lớn chèn
- 4. Xóa số lượng tệp lớn
- 5. Xử lý một số lượng lớn các tệp
- 6. Gửi số lượng lớn dữ liệu giữa các chuỗi Qt
- 7. Số lớn nhất và nhỏ nhất trong một mảng
- 8. chèn số lượng lớn với SQLite và CoreData
- 9. Python + MySQL - Chèn số lượng lớn
- 10. Xóa hàng loạt số lượng tệp lớn
- 11. Nhập số lượng lớn vào Redis
- 12. SQLBulkCopy hoặc Chèn số lượng lớn
- 13. Chia số lượng lớn bằng Python
- 14. Gửi thư đến số lượng lớn người
- 15. số lượng lớn chèn có hoặc không có chỉ số
- 16. Số lượng lớn nhất của goroutines
- 17. C# Gửi email số lượng lớn
- 18. Chèn số lượng lớn với Spring/Hibernate
- 19. Quản lý authorized_keys trên một số lượng lớn máy chủ
- 20. Caching số lượng lớn các trang trên trang web php
- 21. Thực hiện mô đun trong một số lượng lớn?
- 22. Vấn đề với số lượng lớn chèn
- 23. Đọc một số lượng lớn tệp nhanh chóng
- 24. Thực hiện hiệu quả nhất một số lượng lớn
- 25. Di chuyển số lượng lớn tệp
- 26. Nâng cấp số lượng lớn các trang web Joomla
- 27. Hibernate/MySQL Chèn số lượng lớn
- 28. Vẽ một số lượng lớn ảnh trong C# Windows Forms
- 29. BigDecimal.movePointRight() treo với số lượng rất lớn
- 30. Chèn số lượng lớn với thông số tên tệp
comment xóa ------------------------------ --------------------- –
Phương pháp 'Arrays.binarySearch()' –
Một mô tả phù hợp hơn "AND" có thể là "giao lộ". – Sjoerd