题解 | #牛奶供应问题#
牛奶供应问题
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;
}
};