注意注意!!! C++你定义变量一定一定要初始化 但是容器是不用初始化的 因为容器已经被编译器初始化完了 另外数组也要初始化!!!
class Solution {
public:
int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
int start=0;
int sum=0;
int startsum=0;
for(int i=0;i<gas.size();i++){
sum+=gas[i]-cost[i];
startsum+=gas[i]-cost[i];
if(startsum<0){
start=i+1;
startsum=0;
}
}
if(sum<0)
return -1;
return start;
}
};
for(int i=ratings.size();i>0;i--){
if(ratings[i-1]>ratings[i])
result[i-1]=max(result[i-1],result[i]+1);
}
注意啊注意!!! 你应该把i初始化为ratings.size()-1而不是ratings.size() 因为这样就越过内存了
class Solution {
public:
int candy(vector<int>& ratings) {
vector<int> result(ratings.size(),1);
int sum=0;
if(ratings.size()==1) return 1;
for(int i=0;i<ratings.size()-1;i++){
if(ratings[i+1]>ratings[i]) result[i+1]=result[i]+1;
}
for(int i=ratings.size()-1;i>0;i--){
if(ratings[i-1]>ratings[i])
result[i-1]=max(result[i-1],result[i]+1);
}
for(int i=0;i<ratings.size();i++){
sum+=result[i];
}
return sum;
}
};