推荐一篇介绍两篇不错的博文的博文
题目是不是很绕?哈哈,那就对了,我故意的。
推荐这篇博文:推荐胡泳和毛向辉两篇关于对话的博客,猛击这里。
大概两个星期前看到个题目(还是从TopLanguage过去的):
设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度
为O(N),且只允许使用两个附加变量。
苦思冥想两个星期,今天写了段代码,基本实现“时间复杂度为O(N)”的要求,不过用的变量那就多了…
下面是我的杰作:
void mvArray(int *a, int k, int n)
{
if (k % n == 0) return ;
int original = 0, instead = 0;
int x = n;
instead = a[0];
int target = 0;
int j = 0;
while (x--)
{
target = target + k%n< n ? j+k%n : (j+k%n)%n;
instead = a[target];
a[target] = a[j];
}
}
假设有a[]={0,1,2,3,4,5,6,7,8,9}这样10个元素的数组,要求向右顺移7位。算法从数组的第一个元素开始,a[0]将移动到a[7],此时a[7]被拿出来,算出a[7]要移动到的目标位,本例中为a[4],那么a[4]的值被修改为原来a[7]的值,原来的a[4]被拿出来,继续如此循环下去。当目标位的原值与目标位即将被赋予的新值相等时,表示这一个环路已经完成全部的替换。将此次环路的开始位加1,继续下一个环路,直到达到数组元素的个数,跳出循环。此时该数组向右顺移7位的操作已经全部完成。 怎么样,是不是很复杂?连我自己都觉得复杂的不行。可就是写的这么复杂,也只完成题目一半的要求,使用的附加变量远远超过两个。 如果你有兴趣,可以自己试试写个函数出来。懒的写的就直接看下去吧,这里有一个非常优秀的解答。 阅读全文…
@huubby 墙内的人们,更加关心民生相关的事情,确切的说,是更关心与自己的生活有关的事情。
@huubby 之前不知哪位推友说过一句话:所谓脑残,就是不用看新闻联播,不用上新华网,不用读人民日报,就能自动自发的得出与党国高度一致的政治正确的结论。今天我理解了这句话,同时明白了另一个道理,中产阶级并不是推动中国走向民主化的动力,心智思维都正常的中产阶级才是社会民主化动力,其他的却是奴才
@huubby 主动放弃自己的权利,认为自己没有辨识问题的能力,要完全相信政府和专家的判断,除此之外不会存在更好的办法。这样的人,虽然有车有房,生活无忧,但不能算做中产阶级,这是鲁迅笔下坐稳了奴才地位的那一类人
@huubby 不关心社会,不关心公益和慈善事业,没有同情心,不知何为感动,这样的人不管收入达到什么层次,也不能算做中产阶级
@huubby 之前的几条推,是个人关于中产阶级的浅见。基于这些标准来过滤,国内目前不存在中产阶级这样的群体,有的也只是个体。中国社会民主化之路漫漫
@huubby 反思教育。从穿开裆裤撒尿和泥玩,到光屁股看A片打手枪,我们学到的永远是虚伪,真实的内心永远不能暴露给别人,只能深夜自己慢慢品尝。《1984》中奥威尔说的双重思想,在49年之后的新中国得到了彻底的贯彻。
@huubby 我们就是“大洋国”,“自由即奴役,独裁即民主,无知即力量”,“境外”这个词是典型的我们自己的新话。
TopLanguage的置顶帖之一,说的非常到位,google group被墙导致可能有人看不到,所以我转来这里。粗体部分是个人觉得最重要而自己没有做到的地方。
———————————————–转载分割线—————————————————
从2003年加入现在的公司,已经有了快6个年头,自己也从一个计算机软件开发方面的新兵变成了老人。在公司里也做过几个不同的项目,有一些新的同事加 入项目组,会有这样那样的疑惑和问题。在这里想简单说说,一个新人如何能快速的融入一个新的开发组,让其他同事能够接受自己。
首先是读文档。计算机方面有个著名的黑话叫做RTFM,什么意思呢?按字面翻译就去“去读他妈的文档”,这是在新闻组或者论坛里可能常见的回复,一些人娇滴滴的说“我是妹妹,能指导一下这个问题么”或者贱兮兮的”跪求某某问题答案”。当然,同事之间不可能搞这些,不过也经常碰到有人问一些感觉非常简单问题,这些问题实际上都在项目文档或者软件规范里就明白写着。
一个新人加入某个项目,或者转换到一个新项目,都会感觉到手足无措,就像老虎吃刺猬不知如何下嘴。领导不会让这样的新人去完成一些复杂模块的开发或者修改一些相对困难的bug,基本上都是先分一些界面上的小改动,或者是让他开发耦合程度低一些、相对独立一些的功能作为练手,这个时候作为一个新人就要尽快的掌握整个项目的大概,然后泛读一下项目的重要文档。如果要开发某个业内标准的实现软件,那这个标准的相关文档至少要通读一遍,不需要投入很长时间,可以快速掌握一下大概,做做简单的笔记,不懂的地方先记下来以后有空再说。读文档不要作为一个整体任务完成,可以用一些零碎时间来读,以免很长时间没有什么进展,领导看了还以为在磨洋工呢。
**注意事项一,尽管有这样那样的软件支持,一支笔一个本子仍然是最方便最快速最实用的学习工具,我几乎每年都要写掉八九个大笔记本,里面写着项目开发的心得、文档书籍的感受、领导指示的一些开发问题等等,不需要有什么文章格式,先写下来就可以了。
如果是第一次进入公司,项目组长会分一个任务作为对新人水平的考察,就好比网游中的新手任务。我们公司大多数的新手任务都是半个月一个月左右的时间,注意要尽量赶在期限结束前完成所有的编码和单元测试,而且最好完成代码清理和代码注释工作,注意命名规则,这样看起来比较专业一些。
Recent comments