题意:给出杨辉三角的层数k,返回最后一层。k=0时就是只有一个数字1。

思路:滚动数组计算前一半出来,返回时再复制另一半。简单但是每一句都挺长的。

0ms的版本:

 class Solution {
public:
vector<int> getRow(int rowIndex) {
if(rowIndex==) return vector<int>(,); //0和1特殊处理
if(rowIndex==) return vector<int>(,);
vector<int> ans[];
ans[].push_back(); //只需要处理一半,另一半在返回时复制。
for(int i=; i<=rowIndex; i++)
{
ans[~i&].clear(); //滚动数组
ans[~i&].push_back(); //这是必须的
int j=;
for(; j<ans[i&].size(); j++) ans[~i&].push_back( ans[i&][j-]+ans[i&][j]); if(i%==) ans[~i&].push_back( ans[i&][j-]+ans[i&][j-] ); //k为偶数时,里面有奇数个呢。
} ans[rowIndex&].clear();
ans[rowIndex&].insert( ans[rowIndex&].end(),ans[~rowIndex&].begin(), ans[~rowIndex&].end() ); if(!(rowIndex&))
ans[rowIndex&].insert( ans[rowIndex&].end(),ans[~rowIndex&].rbegin()+, ans[~rowIndex&].rend() );//总数为奇数个,最后1个不要复制进去。
else
ans[rowIndex&].insert( ans[rowIndex&].end(), ans[~rowIndex&].rbegin(), ans[~rowIndex&].rend() );//偶数个,全复制。
return ans[rowIndex&];
}
};

AC代码

简洁但4ms的版本:

class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> ans(rowIndex+,);
for(int i=; i<rowIndex; i++) //正在产生第i+2行。
{
for(int j=i; j>; j--) //必须从右开始,不然前面行就被覆盖了。
{
ans[j]+=ans[j-];
}
}
return ans;
}
};

AC代码

LeetCode Pascal's Triangle II (杨辉三角)的更多相关文章

  1. [LeetCode] 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, ...

  2. [LeetCode] 119. Pascal's Triangle II 杨辉三角之二

    Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle. Note t ...

  3. [LeetCode] 119. Pascal's Triangle II 杨辉三角 II

    Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...

  4. Leetcode#118. Pascal's Triangle(杨辉三角)

    题目描述 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5 输出: [ [1], [1,1], [1,2, ...

  5. LeetCode 118. Pascal's Triangle (杨辉三角)

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Retur ...

  6. 每天一道LeetCode--118. Pascal's Triangle(杨辉三角)

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Retur ...

  7. LeetCode(119):杨辉三角 II

    Easy! 题目描述: 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 进阶: ...

  8. LeetCode: Pascal's Triangle II 解题报告

    Pascal's Triangle II Total Accepted: 19384 Total Submissions: 63446 My Submissions Question Solution ...

  9. 学会从后往前遍历,例 [LeetCode] Pascal's Triangle II,剑指Offer 题4

    当我们需要改变数组的值时,如果从前往后遍历,有时会带来很多麻烦,比如需要插入值,导致数组平移,或者新的值覆盖了旧有的值,但旧有的值依然需要被使用.这种情况下,有时仅仅改变一下数组的遍历方向,就会避免这 ...

随机推荐

  1. Kakfa揭秘 Day4 Kafka中分区深度解析

    Kakfa揭秘 Day4 Kafka中分区深度解析 今天主要谈Kafka中的分区数和consumer中的并行度.从使用Kafka的角度说,这些都是至关重要的. 分区原则 Partition代表一个to ...

  2. Python学习_从文件读取数据和保存数据

    运用Python中的内置函数open()与文件进行交互 在HeadFirstPython网站中下载所有文件,解压后以chapter 3中的“sketch.txt”为例: 新建IDLE会话,首先导入os ...

  3. VS2010中无法嵌入互操作类型“......”,请改用适用的接口的解决方法

  4. Swift与Objective-C的对比

    WWDC 2014上苹果再次惊世骇俗的推出了新的编程语言Swift 雨燕, 这个消息会前没有半点风声的走漏.消息发布当时,会场一片惊呼,相信全球看直播的码农们当时也感觉脑袋被敲了一记闷棍吧.于是熬夜学 ...

  5. jQuery ajax 实现分页 kkpager插件

    代码片段一: <!--分页组件 JS CSS 开始--> <!--分页组件 CSS--> <link type="text/css" href=&qu ...

  6. 微软职位内部推荐-Sr SDE-MOD-Beijing

    微软近期Open的职位: JOB TITLE: Senior Software Design EngineerDEPARTMENT: Microsoft Office Division ChinaIM ...

  7. Weblogic12c安装与配置详解

    Weblogic是什么Weblogic的安装Weblogic创建域Weblogic管理域Weblogic的应用Weblogic是什么 Weblogic这是我入职以后第一次接触到的词汇,我很陌生,就从我 ...

  8. ionicPopup确认对话框

    $ionicPopup.confirm({ title: $rootScope.app_name, template: 'Do you want to add this to database?', ...

  9. CQRS学习——Storage实现(EF+Code First+DynamicReponsitory)[其四]

    [这里是的实现,指的是针对各个数据访问框架的一个基础实现] 目标 定义仓储/QueryEntry的基本功能 实现仓储的基本功能,以利于复用 实现一些常用的功能 提供一些便利的功能 目标框架 博主使用的 ...

  10. YUV格式详解

    What is YUV YUV,是一种颜色编码方法. YUV是编译true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV, ...