博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode: Pascal's Triangle II
阅读量:5828 次
发布时间:2019-06-18

本文共 2368 字,大约阅读时间需要 7 分钟。

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?

Original algorithm (recursive approach) can be referred to .

Idea of using only O(k) extra space is reusing the same array list to form the current row of numbers.  Iterations will be from 0th row ([1]) to kth row.  And for each iteration, we need to form the current base on the previous row.

For example, in 3th row, we have [1,3,3,1].  So in the iteration of 4th row, we need only add 1 at the beginning of this array list, overwritten the 2nd element to 1+3=4, 3rd element to 3+3=6, 4th element to 3+1=4, and keep the last element remain unchanged.  Then we would have all the numbers of 4th row, i.e.[1,4,6,4,1].

1 public class Solution { 2     public List
getRow(int rowIndex) { 3 ArrayList
res = new ArrayList
(); 4 if (rowIndex < 0) return res; 5 for (int i=0; i<=rowIndex; i++) { 6 for (int j=i; j>=0; j--) { 7 if (j == i) res.add(1); 8 else if (j > 0) { 9 res.set(j, res.get(j-1)+res.get(j));10 }11 }12 }13 return res;14 }15 }

 

1 public class Solution { 2     public ArrayList
getRow(int rowIndex) { 3 ArrayList
list = new ArrayList
(); 4 list.add(1); 5 int prev, current; 6 for (int i = 0; i <= rowIndex; i++) { 7 prev = 1; 8 for (int j = 0; j <= i; j++) { 9 if (j == 0) continue;10 if (j == i) list.add(1);11 else {12 current = list.get(j);13 list.set(j, current + prev);14 prev = current;15 }16 }17 }18 return list;19 }20 }

 

1 public ArrayList
getRow(int rowIndex) { 2 ArrayList
res = new ArrayList
(); 3 if(rowIndex<0) 4 return res; 5 res.add(1); 6 for(int i=1;i<=rowIndex;i++) 7 { 8 for(int j=res.size()-2;j>=0;j--) 9 {10 res.set(j+1,res.get(j)+res.get(j+1));11 }12 res.add(1);13 }14 return res;15 }

 

转载地址:http://czodx.baihongyu.com/

你可能感兴趣的文章
兰州青年志愿者“中西合璧”玩快闪 温暖旅客回家路
查看>>
计划10年建10万廉价屋 新西兰政府:比想象中难
查看>>
甘肃发首版《3D打印职业教育教材》:校企合作育专才
查看>>
李娜入选国际网球名人堂 成亚洲第一人
查看>>
为找好心人抚养孩子 浙江一离婚父亲将幼童丢弃公园
查看>>
晚婚晚育 近20年巴西35岁以上孕妇增加65%
查看>>
读书:为了那个美妙的咔哒声
查看>>
我从过去八个月的AI公司面试中学到了什么?
查看>>
深入探究Immutable.js的实现机制(一)
查看>>
jsp改造之sitemesh注意事项
查看>>
智能硬件的时代,嵌入式是否已经日薄西山
查看>>
SpringBoot-Shiro使用
查看>>
iOS 9.0之后NSString encode方法替换
查看>>
解决 ThinkPHP5 无法接收 客户端 Post 传递的 Json 参数
查看>>
ASMFD (ASM Filter Driver) Support on OS Platforms (Certification Matrix). (文档 ID 2034681.1)
查看>>
CRM Transaction处理中的权限控制
查看>>
[转]linux创建链接文件的两种方法
查看>>
python ipaddress模块使用
查看>>
统计文件里面某个字符串出现次数
查看>>
文件权限
查看>>