轻量级桌面应用开发的捷径——nw.js

每个程序员都希望用自己喜欢的语言,自己喜欢的平台、工具,写自己喜欢的程序。于是我们会看到有人在Win下用Visual Studio愉快地coding,也会看到有人在OS X下用Xcode来开发,或者是用Sublime Text不受平台限制地玩。

当然了,愿望往往是美好的,然而事与愿违的情况时有发生。如果你基本都是用OS X,却有人让你写一个带有简单界面的小程序,保证在他的Win系统上一定可以运行,那么你是不是有点抓狂。

跨平台应用的前景

阅读全文

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

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

一本书的页码从自然数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。我们考虑有没有更加优化的算法呢?

阅读全文