Tôi gặp sự cố khi cố gắng tìm ra thuật toán chính xác để tính toán tập hợp các phạm vi ngày. Về cơ bản tôi có một danh sách các phạm vi ngày không theo thứ tự (Danh sách chứa các mảng thời gian bắt đầu và kết thúc) và tôi muốn hợp nhất danh sách này để nó không chứa thời gian trùng lặp.Sự cố khi tính phạm vi ngày trùng lặp
Về cơ bản để củng cố hai phạm vi ngày:
if start1 <= end2 and start2 <= end1 //Indicates overlap
if start2 < start1 //put the smallest time in start1
start1 = start2
endif
if end2 > end1 //put the highest time in end1
end1 = end2
endif
endif
này tham gia hai lần ngày.
Tôi nhấn một trở ngại khi nói đến việc lặp qua tất cả các giá trị để danh sách kết thúc chỉ chứa các giá trị không chồng chéo.
Lập trình chức năng và đệ quy của tôi hơi bị gỉ và mọi trợ giúp đều được hoan nghênh.
http://www.amazon.com/Introduction-Algorithms-Thomas-H-Cormen/dp/0262033844 chứa giải pháp có giải thích cho điều này (tốt, nó phụ thuộc vào những gì bạn đang tối ưu hóa, bạn không chỉ định cái đó..). nên rất dễ thực hiện trong FP –
Bất kỳ cơ hội nào bạn có thể đặt cho tôi đúng hướng mà anh ta đang sử dụng cho thuật toán, cấu trúc dữ liệu hoặc cách tiếp cận nào bạn đang đề cập đến? – emt14
Tôi nghĩ rằng đó là lúc bắt đầu trong phần thuật toán tham lam (mặc dù tôi không chắc chắn). bạn phải sắp xếp danh sách trước tiên. –