每个问题都先自己进行尝试,在解决问题后或者解题遇到卡顿时再去查看别人的题解和讨论帖,对于新手的你重点是先能够解出题目而不是寻找最优的解题思路。
目录
1480.一维数组的动态求和
给你一个数组 nums
。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i])
。请返回 nums
的动态和。
class Solution {
public:
vector<int> runningSum(vector<int>& nums) {
vector<int> sum;
int flag = 0;
for(int i=0; i<size(nums); i++){
sum.push_back(flag+nums[i]);
flag = flag+nums[i];
}
return sum;
}
};
//官方
class Solution {
public:
vector<int> runningSum(vector<int>& nums) {
int n = nums.size();
for (int i = 1; i < n; i++) {
nums[i] += nums[i - 1];
}
return nums;
}
};
//其他
class Solution {
public:
vector<int> runningSum(vector<int>& nums) {
int sumn = 0;
vector<int> ret;
for (int i = 0; i < nums.size(); i++) {
sumn += nums[i];
ret.push_back(sumn);
}
return ret;
}
};
解析:
1.第一眼容器嵌套容器框架
2.push_back:将容器元素插入到vector
3.官方解析
383. 赎金信
给你两个字符串:ransomNote
和 magazine
,判断 ransomNote
能不能由 magazine
里面的字符构成。如果可以,返回 true
;否则返回 false
。magazine
中的每个字符只能在 ransomNote
中使用一次。
思考:
字符串:ransomNote;magazine
判断:magazine字符串能否组成ransomnote字符串,同时字符串使用次数为1
过程: