力扣第一题 两数求和,输出了奇怪的东西?

在线蹲一个dl啊,我实在看不出哪里出了问题,这个代码运行好像有的示例可以通过,有的又会莫名输出奇怪的东西。有没有解答一下疑惑

img

看起来两个循环都少读了数组的最后一个数

函数调用代码长啥样啊
虽然少了最后一个数的判别,但怎么能走到if条件内部的呢,很奇怪


class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        //vector类型为长度可变的数组,更灵活。需要#include<vector>
        vector<int> a;
        //int a[2];这里指定返回的是verctor类型,故这里不能用普通数组array
        for(int i=0;i<nums.size();i++){
            for(int j =i+1;j<nums.size();j++){
                if(nums[i]+nums[j]==target){
                    //在a的最后添加元素
                    a.push_back(i);
                    a.push_back(j);
                    //a[0] = i;
                    //a[1] =j;
                    return a;
                }
            }
        }
    }
};