当前位置: 首页 > 知识库问答 >
问题:

Fibonacci级数Binet矩阵的C++实现

李跃
2023-03-14

对于下面的代码,我得到了这个错误:对于第一个参数,没有已知的从“int”到“const std::vector ,std::allocator >”的转换。谁能指出这个错误吗?

class Solution {
public:
    int climbStairs(int n) {
        vector<vector<int>>B{{1,1},
                             {1,0}};
        for(int i=1;i<n;i++){
            B=mult(B);
        }
        return(B[0][0]);
        
    }
    int mult(vector<vector<int>>B){
        vector<vector<int>>ans{{0,0},
                             {0,0}};
        ans[0][0]=B[0][0]+B[1][0];
        ans[0][1]=B[0][1]+B[1][1];
        ans[1][0]=B[0][0];
        ans[1][1]=B[0][1];
        return (vector<vector<int>>ans);
    }
}; 

共有1个答案

申屠新觉
2023-03-14

您正在从mult返回错误的类型。您应该返回std::vector > ,而不是int

#include <vector>

class Solution {
public:
    int climbStairs(int n) {
        std::vector<std::vector<int>>B{{1, 1}, {1, 0}};
        for(int i = 1; i < n; i++){
            B = mult(B);
        }
        return B[0][0];
    }

    // pass by const& instead of value to avoid a copy here
    std::vector<std::vector<int>> mult(const std::vector<std::vector<int>> &B) {
        // simplify so that we don't need ans
        return {
            {B[0][0] + B[1][0], B[0][1] + B[1][1]},
            {B[0][0], B[0][1]}
        };
    }
};
 类似资料:
  • 本文向大家介绍C语言实现稀疏矩阵,包括了C语言实现稀疏矩阵的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言实现稀疏矩阵的具体代码,供大家参考,具体内容如下 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍C++实现图的邻接矩阵表示,包括了C++实现图的邻接矩阵表示的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C++实现图的邻接矩阵表示代码,供大家参考,具体内容如下 1.遇到的问题:教材中写着子类Graphmtx(我用GrapMatrix)继承基类Graph 但是我在子类GraphMatrix中使用父类Graph的保护成员属性:maxVertices 显示没有声明(如下

  • 我想使用寄存器(逐行信息)通过向量算法创建矩阵乘法。打开外循环4次我有空洞matvec_XMM(双* a,双* x,双* y,整数n,整数磅)函数的问题,它返回了不好的结果,这是算法wchich我必须使用: 它是ma代码:

  • 本文向大家介绍C++ 实现稀疏矩阵的压缩存储的实例,包括了C++ 实现稀疏矩阵的压缩存储的实例的使用技巧和注意事项,需要的朋友参考一下 C++ 实现稀疏矩阵的压缩存储的实例 稀疏矩阵:M*N的矩阵,矩阵中有效值的个数远小于无效值的个数,且这些数据的分布没有规律。  稀疏矩阵的压缩存储:压缩存储值存储极少数的有效数据。使用{row,col,value}三元组存储每一个有效数据,三元组按原矩阵中的位置

  • 本文向大家介绍C++实现矩阵原地转置算法,包括了C++实现矩阵原地转置算法的使用技巧和注意事项,需要的朋友参考一下 本文实例描述了C++实现矩阵原地转置算法,是一个非常经典的算法,相信对于学习C++算法的朋友有很大的帮助。具体如下: 一、问题描述 微软面试题:将一个MxN的矩阵存储在一个一维数组中,编程实现矩阵的转置。 要求:空间复杂度为O(1) 二、思路分析 下面以一个4x2的矩阵A={1,2,

  • 本文向大家介绍C语言实现两个矩阵相乘,包括了C语言实现两个矩阵相乘的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言实现两个矩阵相乘的具体代码,供大家参考,具体内容如下 程序功能:实现两个矩阵相乘的C语言程序,并将其输出 代码如下: 运行结果: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。