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:
这次题目,之前一直卡着。但今天,人安静下来后,想了想,觉得好简单。其实就是设置一个 m * n 的数组。然后, 最右侧一列以及最底层一行全部设置为1,然后一层层往上叠加。
下层方格值加右侧方格值,之和等于本格值。
这一定是最简单的方法了。之前好像碰到过类似的题。具体已经忘了。
我一想到,以后如果我的女朋友,和那胖子在一块吃火锅,看电影,就想吐,心痛的厉害。
但是,那样的环境,相依为命,怎么可能抑制感情的爆发。现在没有,只是因为胖子知道她有男朋友,可能还有些自卑。但好处是,会给妹子一种老实,踏实,成熟,靠得住的感觉。
但是,哪个男生在一开始不是这样的形象呢。这次是真的有点急了。
现在火势虽然不大,但我扑灭不了。
**
总结:数组累加法。
**
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