119.杨辉三角II(Java---二维数组及滚动数组)

2021/4/17 12:26:58

本文主要是介绍119.杨辉三角II(Java---二维数组及滚动数组),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:
输入: 3
输出: [1,3,3,1]

进阶:
你可以优化你的算法到 O(k) 空间复杂度吗?

class Solution {
    public List<Integer> getRow(int rowIndex) {
        List<Integer> yhsjList1 = new ArrayList<>();
        List<Integer> yhsjList2 = new ArrayList<>();
        for(int i = 0; i < rowIndex + 1; i++) {
        	//每一行第一位为 1
            yhsjList1.add(1);
	        /**
	        *从杨辉三角第三行(i=2)开始
	        *yhsjList2保存上一行
	        *yhsjList1根据yhsjList2计算下一行(同117题)
	        */
            for(int j = 1; j < i; j++)
                yhsjList1.add(yhsjList2.get(j-1) + yhsjList2.get(j));
            //除了第一行,其它行的最后一位都置为 1
            if(0 != i)
                yhsjList1.add(1);
            yhsjList2 = yhsjList1;
            yhsjList1 = new ArrayList<Integer>();
        }
        return yhsjList2;
    }
}


这篇关于119.杨辉三角II(Java---二维数组及滚动数组)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程