题解 | #牛奶供应问题#

牛奶供应问题

https://www.nowcoder.com/practice/8c66c9b7deea496193e609b70f39783d

#include <climits>
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param taskDurations int整型vector
     * @param capacity int整型
     * @return int整型
     */
    int animalTaskScheduler(vector<int>& taskDurations, int capacity) {
        vector<int> vec(capacity);
        int minValue = INT_MAX;
        int totalTime = 0;
        //初始化
        for (int i = 0; i < capacity; i++) {
            vec[i] = taskDurations[i];
            minValue = min(minValue, vec[i]);
        }
        totalTime += minValue;
        int i = capacity;
        int used = 0;
        while (i < taskDurations.size()) {
            //当前数组内所有元素都不为0
            int _minValue = INT_MAX;
            for (int j = 0; j < capacity; j++) {
                if (vec[j] > 0) {
                    vec[j] -= minValue;
                    //如果是减完之后=0
                    if (vec[j] == 0) {
                        if (i < taskDurations.size() && i != taskDurations.size() - 1) {
                            vec[j] = taskDurations[i++];
                        }
                        else if(!used && i == taskDurations.size() - 1){ 
                            vec[j] = taskDurations[i];
                            used = 1;
                        }
                    }
                }
                if (vec[j] > 0) _minValue = min(_minValue, vec[j]);
            }
            if(_minValue == INT_MAX) break;
            else{
                minValue = _minValue;
                cout << minValue << endl;
                totalTime += minValue;
            }    
        }
        return totalTime;
    }
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务