You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode两数之和暴力解法报Non void function does not return any value问题

代码存在的3个核心问题

  • 输出不符合题目要求:LeetCode两数之和题目明确要求返回两个元素对应的数组下标,你当前代码向返回容器中插入的是*it、*it2即元素的数值本身,和判题系统预期的输出完全不匹配。
  • 语法存在未定义行为:C++要求非void返回值的函数所有执行路径必须有返回值,你仅在找到匹配结果的分支内写了return逻辑,若循环结束未找到匹配(题目虽说明存在唯一解,但编译器无此前提认知),函数无返回值,会触发未定义行为。
  • 类定义语法错误:C++类定义结束的右大括号后必须追加分号,你原始代码类定义结束后缺少分号,无法通过编译。

修正后可通过测试的暴力法代码

#include <vector>
using namespace std;

class Solution 
{
public:
    vector<int> twoSum(vector<int>& nums, int target) 
    {
        int len = nums.size();
        // 外层遍历第一个数的下标
        for (int i = 0; i < len; i++) {
            // 内层遍历第二个数的下标,从i+1开始避免重复
            for (int j = i + 1; j < len; j++) {
                if (nums[i] + nums[j] == target) {
                    // 直接返回两个下标即可
                    return {i, j};
                }
            }
        }
        // 补全返回路径,避免编译告警,题目保证有解不会走到这里
        return {};
    }
};

内容的提问来源于stack exchange,提问作者Gaurav Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:27:05