第四天!
第一题:LeetCode70
解题思路:
其实这个问题就是求解斐波那契数列问题的函数,
class Solution {
public:
int climbStairs(int n) {
int n1=1;//第一阶楼梯的爬法数
int n2=2;//第二阶楼梯的爬法数
if(n==1){
return n1;//只有一阶楼梯只有一个爬法数
}
if(n==2){//只有两阶楼梯,只有两种爬法数
return n2;
}
for(int i=3;i<=n;i++)
{
int temp=n2;//保存当前n2的值
n2=n1+n2;
n1=temp;//更新n1为原来的n2值
}
return n2;
}
};
第二题: LeetCode2011
解题思路:
只要判断中间那个字符是'+'还是'-'就OK。
class Solution {
public:
int finalValueAfterOperations(vector<string>& operations) {
int res=0;//初始化结果变量为0
for(auto& x :operations)//遍历
res +=x[1]=='+'?1:-1;//如果操作符为“+”则结果加1,否则结果减1
return res;
}
};
第三题:LeetCode 1929
解题思路:
获取输入向量nums的大小n。使用for循环遍历输入向量nums的前n个元素。在每次循环中,将当前元素添加到向量nums的末尾。循环结束后,返回拼接后的向量nums。
class Solution {
public:
vector<int> getConcatenation(vector<int>& nums) {
int n=nums.size();// 获取输入向量nums的大小n
for(int i=0;i<n;i++)// 使用for循环遍历输入向量nums的前n个元素
{
nums.push_back(nums[i]);// 在每次循环中,将当前元素添加到向量nums的末尾
}
return nums;// 返回拼接后的向量nums
}
};
今天到这里就结束啦~明天见!