26. 删除有序数组中的重复项
题目描述

解题思路
采用双指针的方法 ,当快指针与慢指针指向的值一样时,快指针递增。
当指向的值不一样时,先将慢指针递增,然后将快指针指向的值赋值给慢指针指向的值。
代码
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int fast = 1,slow = 0;
int ans =1;
while(fast<nums.size())
{
if(nums[fast]==nums[slow])
{
fast++;
}
else
{
nums[++slow]=nums[fast];
ans++;
}
}
return ans;
}
};
6362. 合并两个二维数组 - 求和法
题目描述
解题思路
这个题目就是不涉及算法的思想,就是使用vector 和map进行一个转换;
代码
class Solution {
public:
vector<vector<int>> mergeArrays(vector<vector<int>>& nums1, vector<vector<int>>& nums2) {
map<int, int> mp;
for (auto &vec : nums1) mp[vec[0]] += vec[1];
for (auto &vec : nums2) mp[vec[0]] += vec[1];
vector<vector<int>> ans;
for (auto it = mp.begin(); it != mp.end(); it++) ans.push_back({it->first, it->second});
return ans;
}
};
文章提供了两道编程题的解决方案。第一题使用双指针方法删除有序数组中的重复项,第二题通过vector和map合并两个二维数组并求和。代码实现分别展示了在C++中如何处理这两种问题。

被折叠的 条评论
为什么被折叠?



