Redian新闻
>
大家用过countertop soap dispenser吗? (转载)
avatar
大家用过countertop soap dispenser吗? (转载)# Living
a*e
1
问道简单题,
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?
对下面这种优化解总觉得不是很清楚。感觉如果不是自己想出来的东西下次又会忘,有
没有同学解释下原理?为啥内循环要从右忘左扫?多谢!
vector getRow(int rowIndex) {
vector res;
if (rowIndex<0) return res;

res.resize(rowIndex+1);
res[0]=1;

for (int i=1; i{
for (int j=i; j>=1; j--)
res[j]=res[j-1]+res[j];
}

return res;
}
avatar
M*l
2
【 以下文字转载自 BayHandy 俱乐部 】
发信人: MnMemail (MnM), 信区: BayHandy
标 题: 大家用过countertop soap dispenser吗?
发信站: BBS 未名空间站 (Mon Aug 12 14:39:01 2013, 美东)
类似这个样子。好不好清洁?还是另外买个瓶子摆台面算了。
另外dishwasher是不是一定要有个airgap?
水龙头,airgap,soap,filter water。。。怕洞洞太多了
avatar
r*e
3
你自己跑一下不就知道了??别人解释也没用啊。
自己拿那个1331 手动跑一下,每一步都画在纸上。
avatar
a*e
4
早跑过了。
但这个最初是怎么想出来的?Pascal's Triangle 像下面这样写,很简单,但怎么能够
想到从右到左扫来优化?
class Solution {
public:
vector > generate(int numRows) {
vector> res;
if (numRows==0) return res;

vector curRow;
curRow.push_back(1);
res.push_back(curRow);

for (int i=1; i{
vector prevRow=curRow;
curRow.clear();

for (int j=0; j{
if (j==0)
{
curRow.push_back(1);
}
else
{
curRow.push_back(prevRow[j-1]+prevRow[j]);
}
}
curRow.push_back(1);
res.push_back(curRow);
}

return res;
}
};
avatar
p*t
5
因为从左往右你没地方保存上一行的数据。。。
从右往左的话 用过的上一行的数就没用了 thats it

【在 a***e 的大作中提到】
: 早跑过了。
: 但这个最初是怎么想出来的?Pascal's Triangle 像下面这样写,很简单,但怎么能够
: 想到从右到左扫来优化?
: class Solution {
: public:
: vector > generate(int numRows) {
: vector> res;
: if (numRows==0) return res;
:
: vector curRow;

avatar
w*t
6
dp状态压缩常用的方法
不容易想清楚
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。