0%

事情是这样的,我女朋友在百度的网络推广部门,上个周五的时候集体加班,原来上面布置了一个任务。简单的说,就是输入一个url,然后截全屏(可以用PrintScreen),浏览器拉到最下面(或者end键),再截一次屏,并把再次截屏保存。据说url一共有6k个,全部人工截屏。嗯,想想就可怕。

我第一次想到的是以前在百度实习的时候用过superjs做的自动化检测或许有用,但是具体怎么做的时候也没有什么清晰的概念。昨天晚上九点的时候突然想起来这件事了,于是就去搜索了一下,但是令人失望的是没有找到。然后我想到以前在linux下面的终端操作,浏览打开页面可以用下面的终端命令。

1
firefox www.legendtkl.com

Read more »

在前一篇文章的结尾中提到了动态规划算法,这里再简要的说下吧。网上关于动态规划的讨论也比较多,看来看去,大部分人还是充当了搬运工。还是建议《算法导论》吧。下面简要总结一下。

动态规划的思想是对于每个子问题只求解一次,将其结果保存在一张表中,从而避免每次遇到各个子问题时重新计算答案(这个描述感觉有点像搜索)。动态规划算法的两个要素:最优子结构和重叠子问题。如何判断呢?简单来说,如果问题的一个最优解中包含了子问题的最优解,则该问题具有最优子结构。注意这时候一般来说也可以用贪心算法来解,但是贪心算法与动态规划算法有一个本质的区别:贪心算法的思想是局部最优解,而动态规划算法的思想是全局最优解。那么重叠子问题是什么意思呢?用来解决原问题的递归算法可反复地解同样的子问题。典型地,不同的子问题数是输入规模的一个多项式。当一个递归算法不断地调用同一问题时,我们说该最优问题包含重叠子问题。下面主要来讨论一下典型的动态规划问题——背包问题以及一点扩展。

Read more »

前面一篇的面试题主要考察一些小trick,见过了就很容易,没见过的话可能就很难。今天介绍一类问题,也是经常作为训练的题目。给定整数数组A[1…n],判断是否可以从中选出若干个数,使它们的和恰好为K。比如A[]={1,2,4,7},K=13。应该返回2,4,7。

Read more »

前面写过2sum问题,回顾一下:给定一个数组,求其中和等于给定和的两个数。思想很简单,双指针的思想:对于排序数组,一个头指针一个尾指针,不断向中间压缩。如果数组是排序的,则时间复杂度为O(n),空间复杂度为O(1)。由此可以K sum问题,如果看过《算法引论》这本书,我们可以把K sum问题归约到K-1 sum。举个例子,3 sum问题归约到2sum 问题。对于数组中的每一个数A[i],对数组A[i+1…n]进行2sum求解,则时间复杂度为O(n^2)。类似的我们知道K sum问题的时间复杂度为O(n^k-1)。然而我们今天要讨论的却是另外一类问题。

Read more »

前段时间脖子有点疼,久坐对着电脑实在是难免,有时候打游戏头向前伸着对颈椎就更伤了。于是我就为自己写了一个小程序来呵护颈椎。

下面这个图大家还记得吧!我最开始也是感觉这个不错。但是,不得不说我们对中文的适应能力太强了。比如下面这段话:“研表究明,汉顺字序并不定一影阅响读,比如当看你完这句话后,才发这现里的字全是都乱的。”。换成英文?换成英文也有一个问题,应该说是普遍的问题——时间长了一目十行。下面说说我的程序吧!

Read more »

感觉过了好久好久,假期回家看了很多书,三观无时无刻不被刷新着,可是却不知道从什么地方说起。随便写点什么吧!

不知道是不是在什么地方看到的一句话,有一天就突然出现在我的脑海里:别把没选择当成不选择。我们每个人都有自己的生活方式,同时也目睹了别人的生活方式,有些人确实比我们优秀,确实比我们努力。这个时候也许你会说:我有自己的生活方式,这是我的选择。好像这么一说,一切的放荡不羁就顺理成章了。但是我们从来没有问过自己“有别的选择吗?”这就是我想说的:别把没选择当成不选择,也别把无知当单纯。

Read more »

上一篇文章中重点讨论了二进制格雷码。其实从广义上来说,只要相邻的元素只有一位改变的话都可以称之为格雷码。下面就来说一下格雷码在集合分割上的应用。

先讨论一下集合分割的问题。一个集合的分割就是把S分解成若干个子集S1,S2,S3,…,Sn,使得S1∪S2∪S3∪…∪Sn=S;但对于任意两个不同的子集Si和Sj而言,满足Si∩Sj=φ(φ表示空集)。举例来说,

1
2
3
4
5
6
集合{1,2,3}的分割有5种,如下
{1},{2},{3}
{1,2},{3}
{1,3},{2}
{2,3},{1}
{1,2,3}
Read more »

前段时间做结构光三维重建的时候用到了格雷码编码方法,这里正好做一下总结。

这里讨论的是典型的二进制格雷码(Binary Gray Code),简称格雷码,由贝尔电话实验室研究物理学家Frank Gray提出。Frank Gray 1969年过世,这里所提的Gray码是他在1940年研究出来的,用来在PCM(Puslue Code Modulation)方法传送信号时避免错误。1953年3月17日,Gray取得美国专利,这是格雷码第一次出版的日期。

在一组数的编码中,若任意两个相信的代码只有一位二进制数不同,则称这种编码为格雷码,另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。前面提到格雷码的提出是为了避免讯号传送错误,原理是什么呢?很简单,在数字系统中,常要求代码按一定顺序变化。比如数字3(二进制011)切换到相信的数字4(二进制100),装置的三个位元都要转换,但是在实际电路中,3位变换不可能绝对同时发生,则计数中可能出现短暂的其它代码,可能导致电路状态错误。格雷码可以避免这种错误。

1
2
3
4
5
6
7
8
十进制 格雷码 二进制
0 000 000
1 001 001
2 011 010
3 010 011
4 110 100
5 111 101
6 101 110
Read more »

在日常生活中经常有这样的问题:当我们参加讲座之类的课堂活动的时候,我们想把讲师的演示的PPT之类的东西用手机拍下来,对于两边的同学,拍的图片由于不是正面的,看上去就有点偏,就比如下图(手机随便拍的,有点渣)。

Read more »

之前在网上预定的时候还是20号有货,结果提前两天在亚马逊上就可以买到了。昨天到的时候,先看了一下,13万字,两个小时可以看完。结果用了一个睡前和一个早起看完了,话说好久没有早起了呢。

一直主打积极向上旋律的羽泉,在今年的11月17号迎来自己的第15个生日,同时也完成时隔两年的第九张专辑《再生》。可是羽泉究竟还能出几张专辑呢?毕竟十五年对于一个乐队来说,已经很长了。

Read more »