问题遇到的现象和发生背景
为什么我用下边代码接替过程中出现了超时的问题?用visual studio 解题结果正常呢。
具体问题如下:
n 个孩站成一排。给你一个整数数组 nums表示每个孩的评分。
你需要按照以下要求,给这些孩分发糖果:
每个孩至少分配到 1 个糖果。
相邻两个孩评分更高的孩会获得更多的糖果。
请你给每个孩分发糖果,计算并返回需要准备的 最少糖果数目 。
示例 1:
输入:ratings = [1,0,2]
输出:5
解释:你可以分别给第一个、第二个、第三个孩分发 2、1、2 颗糖果。
用代码块功能插入代码,请勿粘贴截图
int candy(vector<int> nums) {
vector<int> dp(nums.size(), 1);
int rec = 0;
for (int i = 1;i < nums.size();i++) {
if (nums[i]> nums[i-1]) {
dp[i] = dp[i-1] + 1;
rec = i;
}
else if (nums[i] < nums[i-1]) {
for (int j = i - 1;j >= rec;j--) {
dp[j] = max(dp[j], dp[j + 1] + 1);
}
}
else {
rec = i;
}
}
int _sum = 0;
for (auto i : dp) _sum += i;
return _sum;
}
运行结果及报错内容
网页做题时显示的是超时