【LeetCode】Pascal's Triangle II解題報告
2257 ワード
【LeetCode】Pascal’s Triangle II解題報告
[LeetCode]
[https://leetcode.com/problems/pascals-triangle-ii/][1]
Total Accepted: 74643 Total Submissions: 230671 Difficulty: Easy
Question
Given an index k, return the kth row of the Pascal’s triangle.
For example, given k = 3, Return [1,3,3,1].
Note: Could you optimize your algorithm to use only O(k) extra space?
Ways
この問題の最も簡単な方法はもちろん楊輝三角1の方法に基づいて最後の列のデータを返すことだ.しかし、これは要求に合わないに違いない.
いい方法も思いつきましたが、直接書く能力はまだありません.これはパソコンでホワイトボードでコードを書くときにペンで描くことができないからだと思います.これは後で改善します.簡単な問題でまた1時間も振り回されましたが...
私の考えは多くの人と同じで、ダイナミックな計画のような問題は、空間を繰り返し利用して、前のラウンドのデータをカバーすればいいということです.
私ができないのは、概要のデータを上書きしないのがメリットだと思います.例:
見るときはi行ごとに、この行の上の行の一番右の方から、これはこれと前の項の和に等しい.この項目の前をもう一度見てください.最後のループが完了した後に最後のビットを1に追加します.
AC:3ms
この問題の優から左へ遍歴する方法は動的計画にも用いられる.
Date
2016年05月8日
[LeetCode]
[https://leetcode.com/problems/pascals-triangle-ii/][1]
Total Accepted: 74643 Total Submissions: 230671 Difficulty: Easy
Question
Given an index k, return the kth row of the Pascal’s triangle.
For example, given k = 3, Return [1,3,3,1].
Note: Could you optimize your algorithm to use only O(k) extra space?
Ways
この問題の最も簡単な方法はもちろん楊輝三角1の方法に基づいて最後の列のデータを返すことだ.しかし、これは要求に合わないに違いない.
いい方法も思いつきましたが、直接書く能力はまだありません.これはパソコンでホワイトボードでコードを書くときにペンで描くことができないからだと思います.これは後で改善します.簡単な問題でまた1時間も振り回されましたが...
私の考えは多くの人と同じで、ダイナミックな計画のような問題は、空間を繰り返し利用して、前のラウンドのデータをカバーすればいいということです.
私ができないのは、概要のデータを上書きしないのがメリットだと思います.例:
i answer
0 1
1 1 1
2 1 2 1
3 1 3 3 1
4 1 4 6 4 1
......
見るときはi行ごとに、この行の上の行の一番右の方から、これはこれと前の項の和に等しい.この項目の前をもう一度見てください.最後のループが完了した後に最後のビットを1に追加します.
public class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> answer = new ArrayList();
answer.add(1);
if (rowIndex <= 0) {
return answer;
}
for (int i = 0; i < rowIndex; i++) {
for (int j = answer.size() - 2; j >= 0; j--) {
answer.set(j + 1, answer.get(j) + answer.get(j + 1));
}
answer.add(1);
}
return answer;
}
}
AC:3ms
この問題の優から左へ遍歴する方法は動的計画にも用いられる.
Date
2016年05月8日