Pascal's Triangle II
Given an index k, return the kth row of the Pascal's triangle.
For example, given k = 3,
Return [1,3,3,1].
Note:
Could you optimize your algorithm to use only O(k) extra space?
思路:从后向前增加
注意: int[] to ArrayList 无法从ArrayList.asList 来转换,该函数生成一个static List<T> ,T如果是类可以使用。
java代码:
- public List<Integer> getRow(int rowIndex) {
- List<Integer> res = new ArrayList<Integer>();
- int[] res_array = new int[rowIndex+1];
- if(rowIndex < 0) {
- return res;
- }
- res_array[0] = 1;
- for(int i=1;i<=rowIndex;i++) {
- res_array[i] = 1;
- res_array[0] = 1;
- for(int j=i-1;j>0;j--) {
- res_array[j] = res_array[j] + res_array[j-1];
- }
- }
- for(int ele : res_array) {
- res.add(ele);
- }
- return res;
- }
C++代码:
- vector<int> getRow(int rowIndex) {
- vector<int> fn(rowIndex+1);
- fn[0]=1;
- for(int i=1;i<=rowIndex;i++) {
- for(int j=i;j>=0;j--) {
- if(j==i) fn[j]=fn[j-1];
- else if(j==0) fn[j]=1;
- else fn[j]=fn[j]+fn[j-1];
- }
- }
- return fn;
- }

浙公网安备 33010602011771号