Ошибка выполнения с использованием вектора для Leetcode 54 - PullRequest
0 голосов
/ 28 марта 2020

Я получил подобный тип ошибки для проблемы: https://leetcode.com/problems/spiral-matrix-ii/, которую я решил, инициализируя вектор размером n и значением = 1, но в этой проблеме: https://leetcode.com/problems/spiral-matrix/ это не разрешается даже после инициализации размера.

Ошибка "Строка 922: Char 34: ошибка времени выполнения: добавление беззнакового смещения к 0x6020000000b0 переполнено до 0x6020000000a c (stl_vector.h) РЕЗЮМЕ: UndefinedBehaviorSanitizer: undefined-поведения /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_vector.h : 933: 34 "

Вот мой код для того же:

vector<int> spiralOrder(vector<vector<int>>& matrix) {
        int m = matrix[0].size()-1,n = matrix.size()-1;
        int val = 0,left = 0,right = m-1,top = 0,down = n-1;
        vector<int> ans(m*n);
        if(matrix.size() == 0){
            return {};
        }
        while(left <= right && top <=down){
            for(unsigned int i=left;i<=right;i++){
                //ans.push_back(matrix[top][i]);
                ans[val++] = matrix[top][i];
            }
            top++;
            for(unsigned int j=top;top<=down;top++){
                //ans.push_back(matrix[j][right]);
                ans[val++] = matrix[j][right];
            }
            right--;
            for(int i=right;right>=left;i--){
                //ans.push_back(matrix[down][i]);
                ans[val++] = matrix[down][i];
            }
            down--;
            for(int j=down;j>=top;j--){
                //ans.push_back(matrix[j][left]);
                ans[val++] = matrix[j][left];
            }
            left++;
        }
        return ans;
    }

Помощь приветствуется и спасибо заранее

...