114

来源:互联网 发布:csol租号软件 编辑:程序博客网 时间:2024/05/01 05:12

5.2

果然刷题的时候,一般情况下用递归是过不了时间复杂度的啊。呵呵呵呵

又学了一招,用一个数组把数都 存起来,这样时间复杂度大概就都是n方,还是可以接受的了。

public class Solution {    /**     * @param n, m: positive integer (1 <= n ,m <= 100)     * @return an integer     */    public int uniquePaths(int m, int n) {        // write your code here         if(m == 1 || n == 1){            return 1;        }        /* 这个思路大概是对的,就是会超时。        应该采用非递归的方式就好了呢        但是我不会啊,哈哈哈哈                */                //后来我弄了一个数组,用来存数        arrInit(arrTmp);        return arrTmp[m-1][n-1];    }    public static int[][] arrTmp = new int[100][100];    public static void arrInit(int[][] arrTmp){        for(int i = 0;i<100;i++){            arrTmp[0][i] = 1;            arrTmp[i][0] = 1;        }        for(int x = 1; x < 100; x++){            for(int y = 1; y <= x;y++){                arrTmp[x][y] = arrTmp[x-1][y] + arrTmp[x][y-1];                arrTmp[y][x] = arrTmp[x][y];             }        }    }    }


0 0
原创粉丝点击