讲的明白,但写的明白吗?

算法作业有一个小的题目:

一本书的页码从自然数1开始编码直到自然数n,按照通常的习惯,每个页码都不包含多余的前导数字0,例如第6页用数字6而不是06或者006表示。现在给定表示书的总页码的十进制整数n(1 =< n <= 10^9),编程计算书的全部页码中分别用到多少次数字0, 1, 2, 3, 4, 5, 6, 7, 8, 9。

比如一本数有123页,那么各数字出现次数如下图:

阅读全文

你不知道的按位运算

先来看LeetCode上的Divide Two Integers题目要求:

Divide two integers without using multiplication, division and mod operator.

就是说不用乘法,除法,求模运算来实现两个整数相除,看起来很简单,我可以用除数减去被除数,直到除数小于被除数,记录减法操作的次数即可。假设是计算m/n,那么时间复杂度为O(m/n)。用Python实现后,Time Limit Exceeded。我们考虑有没有更加优化的算法呢?

阅读全文

两篇文章帮你入门Django(下)

两篇文章帮你入门Django(上)一文中,我们已经做了一个简单的小网站,实现了保存用户数据到数据库,以及从后台数据库读取数据显示到网页上这两个功能。

看上去没有什么问题了,不过我们可以让它变得更加完美,比如说为它添加一个简单的后台,用来管理我们的Question数据库,或者是写点测试单元来看看我们的程序有没有什么Bug。

阅读全文