1. 程式人生 > >27、楊輝三角2

27、楊輝三角2

題目描述
在這裡插入圖片描述
跟之前不同的是這個只需要返回第n層即可,所以這次如果不考慮其複雜度,可以直接將昨天的程式碼給改造一下
如下

	public static List<Integer> getRow(int rowIndex) {
		List<List<Integer>> target = new ArrayList<>();
        for(int i = 1; i <= rowIndex + 1; i++){
        	List<Integer> mid = new ArrayList<>();
        	for(int j = 1; j <= i; j++){
        		if(j == 1 || j == i){
        			mid.add(1);
        		}else {
        		
					mid.add(target.get(i-2).get(j-2)+target.get(i-2).get(j-1));
				}
        	}
        	
        	target.add(mid);	        
        }
        return target.get(rowIndex);
    }

考慮如何進行優化
檢視如下的程式碼,沒怎麼看懂…
待看…

class Solution {
    public List<Integer> getRow(int rowIndex) {
        Integer[] rows = new Integer[rowIndex + 1];
        rows[0] = 1;
        if(rowIndex > 0){
            rows[1] = 1;
        }

        for(int i = 2;i <= rowIndex; i++){
            for(int j = i - 1;j > 0;j--){
               rows[j] = rows[j] + rows[j - 1];
            }
            rows[i] = 1;
            
        }
        return Arrays.asList(rows);
    }
}