摘要: 题目是这样的:50个灯,有50个按钮,编号为1,2,3……50.刚开始灯全部是熄的,现在依次按按钮,每次按到按钮i,i的倍数编号的灯就变一下状态,问到最后开了几盏灯。这里考的问题其实就是一个数字的正约数的个数是奇数还是偶数的问题。这个题我在某数学网站中找到的,感谢百度~然后,我还发现了,这个题是小学六年级的数学题……尼玛啊!!!其实对于我这样的准程序员来说,遇到这种问题,上来的第一个想法就是,写个小程序,跑一下就知道了~但是在你笔试的时候,是没有台笔记本放在你面前的。回来谈这个问题,如何判断一个数字的正约数个数呢?说破了很简单。一个普通的数字,做一个可以整除的除法,通常是这样的一个式子:a = 阅读全文
posted @ 2013-09-13 21:08 Matrix_R 阅读(916) 评论(2) 推荐(1) 编辑
摘要: 刚才在百度文库上找到了个关于图的拓扑排序很好的方法。这个只有两句话。我在学数据结构的时候是学过图论的,但是,貌似里面只是说了关于深度优先遍历和广度优先遍历。这个拓扑排序貌似真的是没讲。简单两句话,说明如何进行拓扑排序:1 在有向图中,找到一个没有前驱的顶点。2 取出这个顶点,并删除图中该点以及所有以他为尾的弧。重复上面的步骤,直到图空,就完成了拓扑排序。今天记下来,以后会用到~~~ 阅读全文
posted @ 2013-09-13 14:21 Matrix_R 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 因为最近要开始笔试和面试了,我觉得,很有必要做好准备~这个问题是我在网上看到的,13年一家公司的笔试题,求子数组的最大和。这个题我之前在微软的编程之美看到过,不过当时记得并不是很深刻。现在既然看到了,我就好好的想了想。考试题如下:上面只给了两行代码的空间,也就是说,只需要两行的代码即可。对于这个问题,有种很简单,但是效率最低的方法,就是枚举出全部的子数组,并且求和,比较出最大值。我当初写的代码就是这个版本的,现在应该在实验室的电脑里。但是,在《编程之美》中,对于这个问题提供了三种解法,而且其中的第三种是效率最高的。时间复杂度O(n),空间复杂度为O(1)。其实可以考虑一种比较极端的情况,就是, 阅读全文
posted @ 2013-09-13 13:59 Matrix_R 阅读(2355) 评论(1) 推荐(0) 编辑