标签:leetcode
这两题都比较简单,第一题输出杨辉三角,第二题输出特定的某一行,第二题要求空间复杂度为O(k)代码如下:
Pascal‘s Triangle:
public List<List<Integer>> generate(int numRows) {//direct simulate List<List<Integer>> rs = new LinkedList<List<Integer>>(); if(numRows == 0)return rs; else { for(int i = 0; i< numRows; ++ i){ if(i == 0){ List<Integer> row = new LinkedList<Integer>(); row.add(1); rs.add(row); }else { List<Integer> lastRow = rs.get(i - 1); List<Integer> row = new LinkedList<Integer>(); row.add(1); int k1 = 0, k2 = k1 +1; for(;k2 < lastRow.size();){ row.add(lastRow.get(k1) + lastRow.get(k2)); k1 ++; k2 ++; } row.add(1); rs.add(row); } } } return rs; }
Pascal‘s Triangle II:
public List<Integer> getRow(int rowIndex) { //space capacity O(K) List<Integer> rs = new LinkedList<Integer>(); if(rowIndex < 0) return rs; else { if(rowIndex == 0){ rs.add(1); return rs; }else { rs.add(1); int k1 = 2; while (k1 <= rowIndex + 1){ int k3 = 1; rs.add(1); while (k3 < k1 - 1){ rs.add(rs.get(0) + rs.get(1)); rs.remove(0); k3 ++; } if(k3 == k1 -1){ rs.remove(0); } rs.add(1); k1 ++; } } } return rs; }
标签:leetcode
原文地址:http://blog.csdn.net/youmengjiuzhuiba/article/details/45058459