l******e 发帖数: 6 | 1 1. for (i = 1:n-1)
b[i] = a[i]*a[i+1]*a[i+2]*...*a[n];
2. b[0] = b[1];
3. temp = a[0];
4. for (i = 1; i < n; i++)
{
b[i] = temp*b[i+1];
temp *= a[i];
}
Space: temp O(1);
Time: O(n) |
|
|
|
r****o 发帖数: 1950 | 4 问问,第1步求b[i]的过程实际上相当于O(n^2)吧。 |
|
j**l 发帖数: 2911 | 5 可以用例子说明,假如n = 5
首先让b从前向后一重循环累乘并赋值得到b的五个元素如下:
1, a1, a1*a2, a1*a2*a3, a1*a2*a3*a4
然后从后向前一重循环累乘
第五个元素乘1,
第四个元素乘a5
第三个元素乘a5*a4
第二个元素乘a5*a4*a3
第一个元素乘a5*a4*a3*a2 |
|
|
l******e 发帖数: 6 | 7 不好意思:第一步写错了。应该是:
1. for (i = n - 1; n > 0; i--)
b[i] = a[i]*a[i+1]*a[i+2]*...*a[n];
Sorry for the misleading. |
|
|
d****n 发帖数: 233 | 9 it's O(n) if you do like this:
b[n-1] = a[n-1];
1. for (i = n-2:1)
b[i] = a[i]*b[i+1]; |
|
|
A*********r 发帖数: 564 | 11 declare一个函数指针
int * (func)(); //第一个括号里为函数名
declare一个函数指针数组
int * (func[]) (); |
|
d******a 发帖数: 238 | 12 恭喜楼主啊!问你下你的面试题,
设计问题,一堆股票,还有股票值,不断更新,如何在某一时刻返回,前20大股票值和
其对应的股票
公司,大概是一个map 键与值的转换问题。
这个问题,用map的话,因为map是按key升序排列的,前20大股票的话。我们应该按股
票值排序。可以遍历map然后把股票值作为key,股票名作为value,装入一个multi map中
,然后再取最后20个值。
还可以把原来map中的pair<股票名,股票值》放到vector里,然后排序再取20个。
您当时是怎么做的?
vector的实现,你是用模板类写的吧?具体他们要求到什么程度了?函数体要求都写出
来没?vector实际上是个动态分配的数组。你是怎么管理动态内存的?比如说当你push
_back的时候,如果原来空间不够的话,肯定要grow. 你是用c++中的allocator class
实现的?还是简单用new, delete管理动态内存的?
谢谢!!! |
|
t****a 发帖数: 1212 | 13 这是多年前的一篇牛文。一家之言,仅供参考。
通天塔导游
(译注:圣经记载:在远古的时候,人类都使用一种语言,全世界的人决定一起造一座
通天的塔,就是巴别塔,后来被上帝知道了,上帝就让人们使用不同的语言,这个塔就
没能造起来。 巴别塔不建自毁,与其说上帝的分化将人类的语言复杂化,不如说是人
类自身心灵和谐不再的分崩离析。之所以后来有了翻译,不仅是为了加强人类之间的交
流,更寄达了一种愿望,希望能以此消除人际的隔阂,获求来自心灵的和谐及慰藉。真
正的译者,把握血脉,抚平创痕,通传天籁,开启心门。)
这是我写的旋风式的编程语言简介—我本来为亚马逊开发者杂志本月的期刊写的,但是
发现我写的东西没法…见人。
首先,我偶尔一不小心口出脏话,或者对上帝不恭的话,所以对很官方很正式的亚马逊
上发表是不合适的; 所以我就把它塞到我的博客里了,我的博客反正没人看的。除了你
以外。是的,只有你会看,你好啊。
其次,这是一项进行中的工程,现在只是东打一耙西搞一下,还没有精加工过的。又一
个把它写到博客里的很大的理由。不需要很好,或很完整。就是我今天想说的一些话。
请随便!
我的旋风式简介会讲C,C++,Lis... 阅读全帖 |
|
O******i 发帖数: 269 | 14 leetcode的OJ采用类似ACM之类竞赛的评判,只要能在规定时间内通过所有的test case
就算ac了。听说ACM那些选手为了能尽快提交代码,会采取很多trick, 包括用预定义的
宏来代替循环,用短变量名。也就是要尽快提交,只注重能否通过test case和运行速
度, 不注重代码风格之类的。
但是实际面试的时候,不是run test cases发现通过了就好,面试官会注重你的过程,
给follow问题求优化和扩展,会敏锐发现你的潜在bug,还可能会拍照存档细细查看。
有的还care细节部分,包括代码风格,变量命名,函数参数,出错处理,局部代码的优
化(比如push_back给空vector很多元素不如一开始reserve空间)
如果大家做leetcode,发现test cases全过了,就沾沾自喜,那肯定不够的。
所以第一遍注重能过OJ, 后几遍做的时候,注重把代码写好看写短写优化?
leetcode有个小问题,比如对函数F(int A[], int n),好像没有test case去涵盖A ==
NULL或者n < 0的情形,基本上是默认A为合法数组,n >= 0 |
|
m****i 发帖数: 15 | 15 找工作期间在本版潜水两个月,收益良多,发一下最近面经和经验作为回馈。
本人背景:美国不错学校电子PHD即将毕业,专业是EDA做电路设计算法优化。因为EDA
已经是一个很稳定的工业,没什么太大的前景,随想转到前沿的tech公司。本专业只投
了一家现在最大的公司,拿到offer。别的投了Google, Facebook, Rocket fuel,
Twitter, Linkedin, Yahoo, Amazon, Box, Oracle. 除了box别的都找人refer了, 在
此感谢板上大哥们的热情帮忙. 除了GFR别的都没理我,可能背景差太大了。
因为之前是学算法的,mit算法书以前就看过两遍,基础还可以,前期8月份刷了遍
leetcode。然后9月初投出简历。两个星期刷Career cup 150, 最后面试期间一直查缺
补漏。到现在尘埃落定大概两个月。 最后GFR全挂,总结下惨痛经历:
1. Facebook电面
面试官做distributed cache infrastructure的,先问我最难的project,没怎么好好
准备过behavior,胡乱说了一通。但是因为做的是电... 阅读全帖 |
|
m****i 发帖数: 15 | 16 找工作期间在本版潜水两个月,收益良多,发一下最近面经和经验作为回馈。
本人背景:美国不错学校电子PHD即将毕业,专业是EDA做电路设计算法优化。因为EDA
已经是一个很稳定的工业,没什么太大的前景,随想转到前沿的tech公司。本专业只投
了一家现在最大的公司,拿到offer。别的投了Google, Facebook, Rocket fuel,
Twitter, Linkedin, Yahoo, Amazon, Box, Oracle. 除了box别的都找人refer了, 在
此感谢板上大哥们的热情帮忙. 除了GFR别的都没理我,可能背景差太大了。
因为之前是学算法的,mit算法书以前就看过两遍,基础还可以,前期8月份刷了遍
leetcode。然后9月初投出简历。两个星期刷Career cup 150, 最后面试期间一直查缺
补漏。到现在尘埃落定大概两个月。 最后GFR全挂,总结下惨痛经历:
1. Facebook电面
面试官做distributed cache infrastructure的,先问我最难的project,没怎么好好
准备过behavior,胡乱说了一通。但是因为做的是电... 阅读全帖 |
|
s********u 发帖数: 1109 | 17 面的是OS X platform engineer,才30分钟就结束了,估计是挂了。
上来问我熟悉什么系统,我说windows和linux,真不应该大言不惭,其实linux很久没
用了。
然后就问了我chmod 751啥意思,我完全不记得了。。
再问了看进程表用什么指令我说ps,问我有啥信息,我只记得pid和进程名。。。
还有一个也是指令,忘了。就搞得有点慌张。
然后问学习中碰到最大问题是什么,最喜欢的语言(我说C++),最喜欢语言的缺点是
啥(我说可读性,举了例子)。。编程是否有让你的life easier的例子(没写过ios
app不敢乱说)
其他都是简单概念题,但我都说的不太流利。比如解释下hashtable,解释下bst,bst
在worst case下的查找(我说不balance的话就是O(n)) ,如果不balance怎么调整(我
说红黑树,但是不会,我说了最简单的方法就是用数组存下来然后重新建立) 还有如
果是一个电话簿,用哪个好(我说查找特别多的话就hashtable好,如果从节省空间的
角度考虑很大的电话薄用bst好。好像有点问题其实,我后来想想其实电话簿一般不大
,... 阅读全帖 |
|
b**********i 发帖数: 11 | 18 静下来回忆一下今天的online test, 完全不用担心语言的问题。会java的一样没有问
题。不会出现因为语言而做不出来的。
1. Code: 给一个listnode, 给一个int 的值,让你删除链表中,等于给定值得所有
node。
2. Fix bug: 给定一个sorted数组,一个int。 如果有一组数的差等于给定的int,就
说他们是一对,问有多少对。给了你一段代码,让你修改。
3. 给一些小数,问哪个是可以用2 present的
4. 一个人写下1-1000中的一个数,另一个可以问问题答yes、no。问用最优策略 最少
能问多少次得到答案
5. 给你一个单链表,表头一个指针,表尾一个指针,问哪个操作需要与链表长度相关。
6. 一个新语言学习题。就是给定一些规则,问下列哪些是满足的。
7. stack的一个push和pop操作,给定一个规则,问初始i取什么值
8. 给一段代码。问里面两个变量的关系。
9.给第一段代码,问call 一个函数的值。
10.一个像素的灰度的题。记不了了。
11. 一个简单多线程的题,问你哪个结果。
12.给一段代码,问你输入x和函数f(x)的关... 阅读全帖 |
|
p******e 发帖数: 528 | 19 1。写程序时应该先保证运行结果正确,还是应该先保证算法高效?
比方说我用数组a实现一个队列,我可以让队列的头在a[0],然后用index
去访问各个元素。但是当我要删除队列的头一个元素的时候,我如果还想
把a[0]当成队列的第一个元素,我就得把整个队列向左挪一下。这样程序
写起来稍微容易一点,因为我总可以假设a[0]是头一个元素。但是这样写
效率就会比较差,因为在删除头一个元素后,我得挪动整个队列。还有一个
办法就是用一个变量front来单独标记队列的开始,而且当队列已经用到
最后一个元素的时候,我可以继续用front以前的位置来存放新进来的元素。
这样效率会好,但是要是一不小心,可能在访问元素的时候写错。
比方说是多个1或者少个1。请问在这种情况下应该是首先保证程序正确,
还是应该保证效率高?或者换句话说,但我先写出了一个正确但效率
不是最好的程序后,面试官会直接认为我只会最没有效率的写法,而
直接把我默拒了呢?
2。我看版面上有人写有的公司面试的时候让写程序,但是不允许测试和
编译。换句话说就是看程序能不能一遍通过。那这种时候要是有个小错,
比方说一个变量名是AAAA,结果后边写的... 阅读全帖 |
|
b*******y 发帖数: 35 | 20 ***** Zhang (*****是英文名)。曝他全名也没必要,也没多大仇恨。
他疑惑的不是字符s[0]的符号,因为我说了可以cast,用uint8(s[0]),对任何平台的
编译器都没问题。
他疑惑的是,字符比如'a'怎么可以做数组的索引。他觉得'a'是ASCII码,是文字。他
不知道'a'也是数字。显得很无知。 |
|
发帖数: 1 | 21 上海交通大学 青年千人专家李金金课题组 现面向国内外公开招聘博士后
李金金,中组部青年千人专家。现任上海交通大学电子信息与电气工程学院教授、博士
生导师。具体介绍详见:http://dmne.sjtu.edu.cn/dmne/faculty/teacher/lijinjin/
李金金在美国期间主持多个美国能源部的项目,并参与多个重大重点科研计划。回国之
初便主持国家自然科学基金,参与973重大重点专项。并是很多SCI杂志的审稿专家和编
辑,已经发表学术论文50余篇。
岗位要求:
1.本岗位计划招聘1~2名从事理论计算的博士后。
2.要求熟练精通Matlab程序模块,编译器(数组数据运算与调用、M文件编写、面向对
象编程、图形用户界面GUI制作等)。
3.具有晶体生长的理论知识背景,包括晶体螺旋生长和二维成核生长理论。
工作环境:
1.入职后将在美国加州大学圣巴巴拉分校工作。
2.博士后出站时可继续留在美国工作或者推荐进入上海交通大学的faculty职位。
应聘条件:
1.具有相关领域博士学位。并在国际刊物发表科研论文。
2.对Matlab编写大型程序有浓厚的兴趣。
3.优先考虑有晶体生... 阅读全帖 |
|
发帖数: 1 | 22 【招聘】模拟计算方向博士后-工作地点为美国UCSB大学
青年千人专家李金金课题组 现面向国内外公开招聘晶体计算方向博士后
李金金,国家青年千人专家。现任上海交通大学电子信息与电气工程学院特别研究员、
博士生导师。具体介绍详见:http://dmne.sjtu.edu.cn/dmne/faculty/teacher/lijinjin/
岗位要求:
1.本岗位计划招聘1~2名从事理论计算的博士后。
2.要求熟练精通Matlab程序模块,编译器(数组数据运算与调用、M文件编写、面向对
象编程、图形用户界面GUI制作等)。
3.具有晶体生长的理论知识背景(如晶体螺旋生长和二维成核生长理论)或者其他物理
、化学、材料学科理论的模拟知识背景。
工作环境:
1.入职后将在美国加州大学圣巴巴拉分校(University of California, Santa Barbara
)以博士后身份工作。
2.博士后出站时可继续留在美国工作或者推荐进入上海交通大学的faculty职位。
应聘条件:
1.具有相关领域博士学位。并在国际刊物发表科研论文。
2.对Matlab编写大型程序有浓厚的兴趣。
3.对科研... 阅读全帖 |
|
发帖数: 1 | 23 【招聘】模拟计算方向博士后-工作地点为美国UCSB大学
青年千人专家李金金课题组 现面向国内外公开招聘晶体计算方向博士后
李金金,国家青年千人专家。现任上海交通大学电子信息与电气工程学院特别研究员、
博士生导师。具体介绍详见:http://dmne.sjtu.edu.cn/dmne/faculty/teacher/lijinjin/
岗位要求:
1.本岗位计划招聘1~2名从事理论计算的博士后。
2.要求熟练精通Matlab程序模块,编译器(数组数据运算与调用、M文件编写、面向对
象编程、图形用户界面GUI制作等)。
3.具有晶体生长的理论知识背景(如晶体螺旋生长和二维成核生长理论)或者其他物理
、化学、材料学科的理论模拟知识背景。
工作环境:
1.入职后将在美国加州大学圣巴巴拉分校(University of California, Santa Barbara
)工作。
2.博士后出站时可继续留在美国工作或者推荐进入上海交通大学的faculty职位。
应聘条件:
1.具有相关领域博士学位。并在国际刊物发表科研论文。
2.对Matlab编写大型程序有浓厚的兴趣。
3.对科研工作具有浓厚... 阅读全帖 |
|
s*********t 发帖数: 16647 | 24 大约由于是过产儿的缘故,俺打小身体就不太好。
据我妈回忆,那天是医生告诉她的due date的前一周吧,她去医院做例行产检,一个老
护士当即就不让她走了,问了她爱人,也就是俺爹的单位电话,直接告诉我妈马上得生
,羊水都混了,没氧气了;再不生,我就要挂了。。。而且有可能已经挂了。
不管怎么说,我命还是很大的,虽说被拽出我妈肚子的时候,我是一声不吭呈昏迷淡定
状态,可好歹在被抢救了半小时以后,一声惊手术室泣医护的哭声,宣告了俺圣骑士快
乐地来到了这个世界。
说我命大不是没有道理的。医生曾郑重地告诉俺爹和俺娘以及我的外婆奶奶七大姑八大
姨们,我在我妈肚子里半窒息的状态下呆了两三天了,根据他们的经验,我生出来多半
不是白痴就是低智商,只有1%的可能性是正常智商。作为人民教师的我奶奶立马召开了
家庭会议,告诉我爸妈曰:这孩子如果真是白痴,你们也痛苦,孩子自己也痛苦(which
I can’t agree more,不过我想想如果我是白痴,我估计也会挺开心的,毕竟白痴活
在自己的世界里),我们就不要了吧。
不要了吧!同学们,这是啥意思,这是说把俺给消极死啦死啦D啊!气不气人?!还好
老天还算眷顾,... 阅读全帖 |
|
r********s 发帖数: 101 | 25 本报讯 据人民网消息,美国媒体29日报道,一位美国法理学博士,日前称自己曾参与
过美国的“飞马计划”,并到过火星,还称火星很适合人类居住。 www.6park.com
有媒体曾报道,美国数十年前曾有过一个“飞马计划”,在该计划下,一群孩子曾
到过火星。帕西哥称自己曾参与过这个计划。帕西哥在其发表的论文《在火星上发现生
命》中表示,自己曾到过火星,并说火星很适合人类居住。 www.6park.com
报道称,美国政府在很长一段时间内一直试图隐藏一系列“黑色行动”项目。其中
最有名的是“飞马计划”,该计划让140名学生参与一项令人刮目相看的数组时空实验
。 www.6park.com
据帕西哥介绍,自己在1970年参与美国国防先进研究项目局的计划时只有9岁,他
被人放进瞬息移动时光机里去。帕西哥描述说,他当时穿越了时空,并回到了1863年林
肯总统于葛底斯堡演讲时的场面,他还被拍到一张照片,照片里一个穿着大人鞋子的小
孩就是他。 www.6park.com
据悉,帕西哥出生于1961年,是毕业于剑桥大学的法理学博士,现为执业律师及作
家,并有专属自己的网站Web Bot Project,该... 阅读全帖 |
|
a****a 发帖数: 5763 | 26 2011年12月3日,LLVM 3.0正式版发布,完整支持所有ISO C++标准和大部分C++ 0x的新
特性, 这对于一个短短几年的全新项目来说非常不易。
开发者的惊愕
在2011年WWDC(苹果全球开发者大会)的一场与Objective-C相关的讲座上,开发者的
人生观被颠覆了。
作为一个开发者,管理好自己程序所使用的内存是天经地义的事,好比人们在溜狗时必
须清理狗的排泄物一样(美国随处可见“Clean up after your dogs”的标志)。在本
科阶段上C语言的课程时,教授们会向学生反复强调:如果使用malloc函数申请了一块
内存,使用完后必须再使用free函数把申请的内存还给系统——如果不还,会造成“内
存泄漏”的结果。这对于Hello World可能还不算严重,但对于庞大的程序或是长时间
运行的服务器程序,泄内存是致命的。如果没记住,自己还清理了两次,造成的结果则
严重得多——直接导致程序崩溃。
Objective-C有类似malloc/free的对子,叫alloc/dealloc,这种原始的方式如同管理C
内存一样困难。所以Objective-C中的内存管理又增... 阅读全帖 |
|
S********y 发帖数: 26 | 27 shell script应该可以实现的吧!不过死机的情况不可能
kill process的吧!?下面仅供参考,不一定对,欢迎指正!
algorithm和dataset 是存好你算法名和数据集的数组
#!/bin/sh
for (( i = 1; i <= 30; i++ ))
do
for (( j = 1; j <= 10; j++ ))
do
./${algorithm[$i]} ${dataset[$j]} &
pid=$!
sleep 15*60
if [ `kill -0 $pid` -eq 0 ]
then
echo alrogithm was still running and got killed!
else
echo algorithm finished execution.
fi
done
then
echo algorithm finished execution.
else
shell secho alrogithm was still |
|
T****n 发帖数: 2195 | 28 MATLAB数据都是以钜阵形式(或列向量)存储的,SAS得写数组。
MATLAB运行大程序,方便开中间某一个变量的值(主窗口输入变量名)。SAS还得PROC
PRINT。
MATLAB的子程序块比较容易写,也容易修改。SAS MACRO相对来说语句难一些吧。
个人观点 。。。。。以前学过EE,做过点儿MATLAB的东西。
但统计函数,MODEL,TEST什么的,definitely 用 SAS。 |
|
a***s 发帖数: 616 | 29 谢谢.
但是当数组内的变量名不是连续的数字时,不能用"-"吧。
这个问题是我在考base的时候遇到的。不知道结果。 |
|
b2 发帖数: 427 | 30 谢谢大侠,囊中羞涩,发了一个包子给您。
如果有200多个变量like var2,我应该怎么做呢?
我想的是
array var(221) 变量名1 ... 变量221;
然后用宏。
%macro count(i);
above statments ;
%mend;
然后再用merge合并,可行么?可以把从array开始的语句放在同一个数据不里面么?
我想问的是如何在macro里面调用数组名字呢,like var&i.?
thank you so much. |
|
l******r 发帖数: 682 | 31 一个数据,variable比较多,大概300个。
是不是只有先把variable名取出来存成macro数组,然后再用loop一个一个改?
谢谢 |
|