刷题笔记2022.2.24
- 反转字符数组
当然这里用reverse()相当简单。如果不能用这个方法的话,应该要用双指针。
双指针注意别忘了beg和end怎么变的就行,还是挺简单的。
- 反转字符串中的单词。String我是真不太会。实际上只需要在反转的时候加上“你所反转的是单词”这一限制条件就够了。从分界入手。
- 二维数组转化成一维数组的问题。这个vector<vector<int>>看的我头疼。形象化地来说,我们把这个二维数组「排扁」成了一个一维数组。如果读者对机器学习有一定了解,可以知道这就flatten 操作。这样的映射即为:(i,j)→i×n+j i=x / n j=x % n(n是列)
也要记得考虑特殊情况,如果 mn 不=rc,那么二者包含的元素个数不相同,因此无法进行重塑;
二维数组的行和列:int m = nums.size(); int n = nums[0].size();
设一个r行c列的二维数组:vector<vector<int>> ans(r, vector<int>(c));r个vector<int>的对象,每个vector<int>里有c个元素。
4.打印杨辉三角,不知道怎么下手。第 n 行的第 i个数等于第 n−1 行的第 i-1 个数和第 i个数之和。这也是组合数的性质之一。首位都是1,中间的是上一层相加得到的。从第三行开始才出现中间的元素。二维的vector更像对组,不是矩阵