Leetcode-119 杨辉三角 II

作者: itbird01 | 来源:发表于2021-09-28 20:32 被阅读0次

    119. 杨辉三角 II

    解题思路

    1.通过阅读题意,结果只需要输出结果行,所以每次只需存储前一行数据即可
    2.初始化,第一行数据
    3.开始双层for循环遍历,结果行每个数值==pre.get(j) + pre.get(j - 1)
    4.针对于行为0、列为0、行等于列的特殊位置,数值==1
    5.遍历完每行数据,此时的result list赋值为pre list
    6.每次循环每行数据开始前,clear result list,只需要save pre list

    解题遇到的问题

    1.不用数组存储,优化空间复杂度

    ##解法1
    class Solution {
        public static List<Integer> getRow(int rowIndex) {
            List<Integer> result = new ArrayList<Integer>();
            List<Integer> pre = new ArrayList<Integer>();
            pre.add(1);
            for (int i = 0; i < rowIndex + 1; i++) {
                result.clear();
                for (int j = 0; j <= i; j++) {
                    if (i == 0 || j == 0 || j == i) {
                        result.add(1);
                    } else {
                        result.add(pre.get(j) + pre.get(j - 1));
                    }
                }
                pre.clear();
                pre.addAll(result);
            }
            return result;
        }
    }
    

    相关文章

      网友评论

        本文标题:Leetcode-119 杨辉三角 II

        本文链接:https://www.haomeiwen.com/subject/ikqygltx.html