原题是力扣第一道题【两数之和】
我的解题代码,报错了,解决方案写在注释里了:
class Solution {
public:
vector<int> twoSum(vector<int> &nums, int target)
{
vector<int> vec;
for (int i = 0; i < sizeof(nums)-1; i++) //改成nums.size()就不会报错了
{
for (int j = i + 1; j < sizeof(nums); j++) //改成nums.size()就不会报错了
{
int sum = nums[i]+nums[j];
if (sum == target)
{
vec.push_back(i);
vec.push_back(j);
return vec;
}
}
}
return vec;
}
};
报错详情:
报错详因:
num.size()
直接是直接获取当前字符串的长度,而sizeof(nums)
是直接获取当前字符串所占空间的大小。
参考:https://blog.youkuaiyun.com/qq_36409711/article/details/65431318