程式語言 - LeetCode - C++ - 3633. Earliest Finish Time for Land and Water Rides I



題目:


解答:

class Solution {
public:
    int earliestFinishTime(vector<int>& landStartTime, vector<int>& landDuration, vector<int>& waterStartTime, vector<int>& waterDuration) {
        auto cal = [](vector<int> ls, vector<int> ld, vector<int> ws, vector<int> wd) -> int {
            int mn = INT_MAX;

            for (int i = 0; i < ls.size(); ++i) {
                mn = min(mn, ls[i] + ld[i]);
            }

            int ans = INT_MAX;

            for (int i = 0; i < ws.size(); ++i) {
                ans = min(ans, max(mn, ws[i]) + wd[i]);
            }

            return ans;
        };

        int m0 = cal(landStartTime, landDuration, waterStartTime, waterDuration);
        int m1 = cal(waterStartTime, waterDuration, landStartTime, landDuration);

        return min(m0, m1);
    }
};