微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行时错误:添加无符号偏移量溢出

如何解决运行时错误:添加无符号偏移量溢出

class Solution {
public:
    bool isSafe(vector<vector<int>> &image,int sr,int sc,int initial_value){
        if(sr>=0 && sr<image.size() && sc>=0 && sc<image[0].size() && image[sr][sc]==initial_value)
        {
            return true;
            
        }
    return false;
        
    
}
vector<vector<int>> floodFill(vector<vector<int>>& image,int newColor) {
    int initial_value=image[sr][sc];
    image[sr][sc]=newColor;
    
    if(isSafe(image,sr+1,sc,initial_value))
    {
        // image[sr+1][sc]=newColor;
        image=floodFill( image,newColor);
    }
    if(isSafe(image,sr-1,sr,sc+1,sc-1,newColor);
    }
    return image;
}

};

解决方法

vector<vector<int>> floodFill(vector<vector<int>>& image,...

由于您是通过引用传递图像,因此无需按值返回。

使用后您将大大提高性能

void floodFill(vector<vector<int>>& image,int sr,int sc,int newColor) {
    int initial_value=image[sr][sc];
    image[sr][sc]=newColor;
    
    if(isSafe(image,sr+1,sc,initial_value))
    {
        floodFill( image,newColor);
    }
    if(isSafe(image,sr-1,sr,sc+1,sc-1,newColor);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。