leetcode 119.Pascal's Triangle II-杨辉三角形

原题链接:Pascal's Triangle II

【思路】

与 leetcode: Pascal's Triangle | Java最短代码实现 不同的是,本题只需要返回一行,并且要求空间复杂度为超过 O(k),我们将每一行的结果存放在 result 结果集中,一行一行地更新:

    public List getRow(int rowIndex) {List result = new ArrayList();result.add(1);for (int i = 0; i < rowIndex; i++) {  //进行 rowIndex - 1 次(hang)更新for (int j = i; j > 0; j--)  //利用本行的结果,更新下一行的结果result.set(j, result.get(j) + result.get(j - 1));  //下一行的第 j 个元素为上一行的第 j - 1 和第 j 个元素的和result.add(1);}return result;}
34 / 34  test cases passed. Runtime: 3 ms  Your runtime beats 21.02% of javasubmissions.

【优化】

我们也可以直接根据 rowIndex 推出那一行的结果,而不需要根据前一行进行推导:

    public List getRow(int rowIndex) {List ans = new ArrayList();ans.add(1);for(int i = 1; i <= rowIndex; i++)ans.add((int)(Math.round(ans.get(i - 1) * ((double)(rowIndex - i + 1) / i))));return ans;}
34 / 34  test cases passed. Runtime: 1 ms  Your runtime beats 84.70% of javasubmissions.


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部