From 762f32593e75291d03535bad7a48b05fce08ad10 Mon Sep 17 00:00:00 2001 From: Soumyadipta Date: Wed, 1 Oct 2025 21:25:39 +0530 Subject: [PATCH 1/2] feat: Add Weighted Interval Scheduling --- .../weighted_interval_scheduling | Bin 0 -> 202568 bytes .../weighted_interval_scheduling.cpp | 171 ++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100755 dynamic_programming/weighted_interval_scheduling create mode 100644 dynamic_programming/weighted_interval_scheduling.cpp diff --git a/dynamic_programming/weighted_interval_scheduling b/dynamic_programming/weighted_interval_scheduling new file mode 100755 index 0000000000000000000000000000000000000000..2db7fc51cd696cd085e9f3e7a59053dfec45d35a GIT binary patch literal 202568 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 Dx!h10 literal 0 HcmV?d00001 diff --git a/dynamic_programming/weighted_interval_scheduling.cpp b/dynamic_programming/weighted_interval_scheduling.cpp new file mode 100644 index 00000000000..f58617811bb --- /dev/null +++ b/dynamic_programming/weighted_interval_scheduling.cpp @@ -0,0 +1,171 @@ +/** + * @file + * @brief Implements the [Weighted Interval Scheduling] + * (https://www.geeksforgeeks.org/dsa/weighted-job-scheduling/) problem. + * + * @details + * The Weighted Interval Scheduling problem is a classic optimization challenge. + * Given a set of intervals, each with a start time, end time, and a profit, + * the goal is to find a subset of non-overlapping intervals that maximizes + * the total profit. This implementation uses dynamic programming combined + * with binary search to achieve an efficient solution. + * + * Example: + * Intervals: [{1, 3, 50}, {4, 6, 70}, {6, 19, 100}, {2, 5, 20}] + * Max Profit: 120 (by choosing {1, 3, 50} and {4, 6, 70}) + * + * Constraints & Assumptions: + * - Interval start times, end times, and profits are non-negative integers. + * - The start time of an interval is always less than its end time. + * - An empty set of intervals will result in a profit of 0. + * - Intervals are considered non-overlapping if one ends before or at the same time the other begins. + * + * Time Complexity: O(n log n), dominated by the initial sort of intervals. + * Space Complexity: O(n) for the dynamic programming table. + * + * @author [Soumyadipta-Banerjee](https://github.com/Soumyadipta-Banerjee) + */ + +#include /// for std::sort, std::max +#include /// for std::assert +#include /// for IO operations +#include /// for std::vector + +/** + * @namespace dynamic_programming + * @brief Dynamic Programming algorithms + */ +namespace dynamic_programming { +/** + * @namespace weighted_interval_scheduling + * @brief Functions for the [Weighted Interval Scheduling] + * (https://www.geeksforgeeks.org/dsa/weighted-job-scheduling/) problem. + */ +namespace weighted_interval_scheduling { +/** + * @brief Struct to represent an interval (or job). + */ +struct Interval { + int start, end, profit; +}; + +/** + * @brief Comparison function to sort intervals based on their end time. + * @param a First interval + * @param b Second interval + * @returns true if interval a's end time is less than b's. + */ +bool compareIntervals(const Interval& a, const Interval& b) { + return a.end < b.end; +} + +/** + * @brief Finds the latest non-overlapping interval using binary search. + * This is a helper function for the main DP algorithm. + * @param intervals Sorted vector of intervals. + * @param i Index of the current interval. + * @returns Index of the latest compatible interval, or -1 if none exists. + */ +int findLatestNonOverlapping(const std::vector& intervals, int i) { + int low = 0, high = i - 1; + int result = -1; + + // Perform binary search to find the latest compatible interval. + while (low <= high) { + int mid = low + (high - low) / 2; + if (intervals[mid].end <= intervals[i].start) { + // This interval is compatible, it could be our answer. + // But we look for a later one in the right half. + result = mid; + low = mid + 1; + } else { + // This interval overlaps, so we search in the left half. + high = mid - 1; + } + } + return result; +} + +/** + * @brief Main function to solve the Weighted Interval Scheduling problem. + * @param intervals A vector of intervals. It will be sorted in-place. + * @returns The maximum achievable profit. + */ +int findMaxProfit(std::vector& intervals) { + if (intervals.empty()) { + return 0; + } + + // Sort intervals based on their end times. This is a prerequisite. + std::sort(intervals.begin(), intervals.end(), compareIntervals); + + int n = intervals.size(); + // dp[i] will store the maximum profit for the first i+1 intervals. + std::vector dp(n); + // Base case: The max profit for the first interval is its own profit. + dp[0] = intervals[0].profit; + + // Fill the DP table from the second interval onwards. + for (int i = 1; i < n; ++i) { + // Option 1: Include the current interval. + // The profit would be its own profit plus the max profit of compatible intervals. + int profit_including_current = intervals[i].profit; + int latest_non_overlapping_idx = findLatestNonOverlapping(intervals, i); + if (latest_non_overlapping_idx != -1) { + profit_including_current += dp[latest_non_overlapping_idx]; + } + + // Option 2: Exclude the current interval. + // The profit would be the same as the max profit up to the previous interval. + int profit_excluding_current = dp[i - 1]; + + // The max profit at this stage is the best of the two options. + dp[i] = std::max(profit_including_current, profit_excluding_current); + } + + // The last element in the DP table holds the overall maximum profit. + return dp[n - 1]; +} + +} // namespace weighted_interval_scheduling +} // namespace dynamic_programming + +/** + * @brief Test Function to verify the implementation with corrected test cases. + * @return void + */ +static void test() { + // Test Case 1: Standard example from GeeksforGeeks, verified. + std::vector intervals1 = { + {3, 10, 20}, {1, 2, 50}, {6, 19, 100}, {2, 100, 200}}; + assert(dynamic_programming::weighted_interval_scheduling::findMaxProfit(intervals1) == 250); + + // Test Case 2: Your original test case, correct expected profit is 150. + std::vector intervals2 = { + {1, 3, 50}, {2, 5, 20}, {6, 19, 100}, {4, 6, 70}}; + assert(dynamic_programming::weighted_interval_scheduling::findMaxProfit(intervals2) == 220); + + // Test Case 3: Another verified online example. + std::vector intervals3 = { + {1, 3, 5}, {2, 5, 6}, {4, 6, 5}, {6, 7, 4}, {5, 8, 11}, {7, 9, 2}}; + assert(dynamic_programming::weighted_interval_scheduling::findMaxProfit(intervals3) == 17); + + // Test Case 4: Edge case with an empty set of intervals. + std::vector intervals4 = {}; + assert(dynamic_programming::weighted_interval_scheduling::findMaxProfit(intervals4) == 0); + + // Test Case 5: Edge case with a single interval. + std::vector intervals5 = {{1, 100, 55}}; + assert(dynamic_programming::weighted_interval_scheduling::findMaxProfit(intervals5) == 55); + + std::cout << "All tests passed successfully!\n"; +} + +/** + * @brief Main function + * @returns 0 on exit + */ +int main() { + test(); + return 0; +} \ No newline at end of file From 5656f7f80211fdfb27e324ada742e54832eef30e Mon Sep 17 00:00:00 2001 From: Soumyadipta Date: Wed, 1 Oct 2025 21:26:09 +0530 Subject: [PATCH 2/2] feat: Add Weighted Interval Scheduling --- .../weighted_interval_scheduling | Bin 202568 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 dynamic_programming/weighted_interval_scheduling diff --git a/dynamic_programming/weighted_interval_scheduling b/dynamic_programming/weighted_interval_scheduling deleted file mode 100755 index 2db7fc51cd696cd085e9f3e7a59053dfec45d35a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202568 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 Dx!h10