2021.2.15 面经复习

时间:2021-02-18 13:00:12   收藏:0   阅读:0

字节日常实习一面(武汉后端开发)
原帖地址:https://www.nowcoder.com/discuss/582954

15 算法题
在力扣上没找到相应题目,跪求题目出处
一个环上有0,1,2,3,4,5,6,7,8,9 共计10个节点,一个指针起始位置在0节点,每次只能走一步,可以顺时针走也可以逆时针走,请问走了n步之后再回到0节点,请问总共有多少种不同的方式?
例如n=1,路径有(0,1),(0,9),输出0
n=2,路径有(0,1,2)(0,1,0)(0,9,0)(0,9,8) 输出2
作者:牛客545441257号
链接:https://www.nowcoder.com/discuss/582954
来源:牛客网

int mainfun(int n) {
        vector<vector<int>> matrix(vector<vector<int>>(n+1,vector<int>( 10,0)));
        for (int i = 0;i < 10;i++) {
            matrix[0][i] = 0;
        }
        matrix[1][1] = 1;
        matrix[1][9] = 1;
        for (int i =2;i < n+1;i++) {
            for (int j = 0;j < 10;j++) {
                if(j>0&&j<9)
                    matrix[i][j] = matrix[i - 1][j + 1] + matrix[i - 1][j - 1];
                if(j==0)
                    matrix[i][j] = matrix[i - 1][j + 1] + matrix[i - 1][9];
                if (j == 9)
                    matrix[i][j] = matrix[i - 1][0] + matrix[i - 1][j-1];
            }
        }
        return matrix[n][0];
    }
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!