Leetcode - Unique Paths

Paste_Image.png

My code:

public class Solution {
    public int uniquePaths(int m, int n) {
        if (m <= 0 || n <= 0)
            return 0;
        else if (m == 1)
            return 1;
        else if (n == 1)
            return 1;

        int[][] count = new int[m][n];
        for (int i = 0; i < n; i++)
            count[m - 1][i] = 1;
        for (int i = 0; i < m; i++)
            count[i][n - 1] = 1;
        count[m - 2][n - 1] = 1;
        count[m - 1][n - 2] = 1;
        for (int i = m - 2; i >= 0; i--)
            for (int j = n - 2; j >= 0; j--)
                count[i][j] = count[i + 1][j] + count[i][j + 1];
        return count[0][0];
    }
    
    
    public static void main (String[] args) {
        Solution test = new Solution();
        System.out.println(test.uniquePaths(1, 2));
        
    }
}

My test result:

Paste_Image.png

这次题目,之前一直卡着。但今天,人安静下来后,想了想,觉得好简单。其实就是设置一个 m * n 的数组。然后, 最右侧一列以及最底层一行全部设置为1,然后一层层往上叠加。
下层方格值加右侧方格值,之和等于本格值。

Paste_Image.png

这一定是最简单的方法了。之前好像碰到过类似的题。具体已经忘了。

我一想到,以后如果我的女朋友,和那胖子在一块吃火锅,看电影,就想吐,心痛的厉害。
但是,那样的环境,相依为命,怎么可能抑制感情的爆发。现在没有,只是因为胖子知道她有男朋友,可能还有些自卑。但好处是,会给妹子一种老实,踏实,成熟,靠得住的感觉。
但是,哪个男生在一开始不是这样的形象呢。这次是真的有点急了。
现在火势虽然不大,但我扑灭不了。

**
总结:数组累加法。
**

Anyway, Good luck, Richardo!

public class Solution {
    public int uniquePaths(int m, int n) {
        if (m <= 0 || n <= 0)
            return 0;
        int[][] board = new int[m][n];
        for (int i = 0; i < n; i++)
            board[0][i] = 1;
        for (int i = 0; i < m; i++)
            board[i][0] = 1;
        for (int i = 1; i < m; i++) {
            for (int j = 1; j < n; j++) {
                board[i][j] = board[i][j - 1] + board[i - 1][j];
            }
        }
        return board[m - 1][n - 1];
    }
}

不难。

Anyway, Good luck, Richardo!

差不多的做法,不难。

Anyway, Good luck, Richardo! -- 08/07/2016

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容