我检查了所有的半逗号,所以应该不成问题,有人可以通过Leetcode解决方案来帮助我吗?
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
int res=INT_MAX;
std::sort(nums.begin(), nums.end());
for(int i = 0; i<nums.size(); i++){
//create target minus nums
int qminus = target-nums[i];
int closest = INT_MAX;
//hashtable[nums[i]]=minus;
//
int front = i+1;
int back = nums.size()-1;
while(front<back){
int sum = nums[front]+nums[back];
if(sum<qminus) {front++;
closest = minus - sum;
res = min(closest, res);
}
else if(sum>qminus) {back--;
closest = minus - sum;
res = min(closest,res);
}
else res=0;
}
while(front<back && nums[i+1]==nums[i]) i++;
}
return res;
};
我在字符串常量前收到一个缺少unqualid-id的错误,有人可以帮我解决这个错误,谢谢!
最佳答案
您缺少右括号,并且没有名为minus
的变量:
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
int res=INT_MAX;
std::sort(nums.begin(), nums.end());
for(int i = 0; i<nums.size(); i++){
//create target minus nums
int qminus = target-nums[i];
int closest = INT_MAX;
//hashtable[nums[i]]=minus;
//
int front = i+1;
int back = nums.size()-1;
while(front<back){
int sum = nums[front]+nums[back];
if(sum<qminus) {front++;
closest = qminus - sum; // did you mean qminus?
res = min(closest, res);
}
else if(sum>qminus) {back--;
closest = qminus - sum; // did you mean qminus?
res = min(closest,res);
}
else res=0;
}
while(front<back && nums[i+1]==nums[i]) i++;
}
return res;
} // missing this bracket
};
Leetcode通常会为编译器错误指定行号,因此您下次应该可以使用该行号来更深入地了解问题。
关于c++ - 3和最接近,带有错误: expected unqualified-id before string constant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45176490/