c++ - 3和最接近,带有错误: expected unqualified-id before string constant

标签 c++ c++11 compiler-errors syntax-error

我检查了所有的半逗号,所以应该不成问题,有人可以通过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/

相关文章:

c++ - 对不同类型使用shared_ptr

C++ 调用错误时没有匹配的函数

c++ - 错误 C2664 'HRESULT IUnknown::QueryInterface(const IID &,void **)' : cannot convert argument 1 from 'const winrt::guid' to 'const IID &'

c++ - Typedef 模板参数

c++ - 从 'int'类型的返回值到函数返回类型( vector )没有可行的转换

linux - Linux 编译错误(关于管道概念的简单演示代码)

c++ - OpenCV 图像处理——C++ vs C vs Python

c++ - 正在通过 const ref undefined 行为捕获新构造的对象

c++ - boost::log 在 channel 记录器中设置 "Channel"属性

c++ - 为什么我收到 undefined reference 错误