அல்கோரிதம்weighted interval scheduling

Weighted Interval Scheduling — எடையிட்ட இடைவெளி திட்டமிடல்

TT
Testlaa Team
May 14, 20261 min read

முடிவு நேர வரிசை — முன்னோடி binary search.

உண்மை உலகில் இது ஏன் முக்கியம்?

அறை; CPU.

மையக் கருத்து (மாணவர்களுக்கான விளக்கம்)

p(i) binary search.

Pythonில் முயற்சி செய்வோம்

def weighted_interval(intervals: list[tuple[int, int, int]]) -> int:
    intervals = sorted(intervals, key=lambda x: x[1])
    ends = [e for _, e, _ in intervals]
    import bisect

    dp = [0]
    best = 0
    for s, e, w in intervals:
        j = bisect.bisect_right(ends, s) - 1
        take = w + (dp[j + 1] if j >= 0 else 0)
        best = max(best, take)
        dp.append(best)
    return best


print(weighted_interval([(1, 3, 5), (2, 5, 6), (4, 6, 5), (6, 7, 4)]))

அடிக்கடி நேரும் தவறுகள்

  • வரிசை.
  • சம முடிவு.

முக்கியச் சுருக்கக் குறிப்புகள்

  • நேர சுருக்கம்.

Tags:

Dynamic programmingPythonமாணவர்கள்