Combinations (Python)

2014年1月31日 21:05

递归解法和非递归解法都能过。非递归解法中p指针指的位置如果达到了允许的最大值, p指针就前移。比如C(5,3)得到了[1,2,5], p指向第三个位置已经达到了最大值5, 则p前移,指向第二个位置,c[p]+=1, 于是得到[1,3,4]。当p指向第一个位置且它达到最大值,也就是[3,4,5]的时候就结束了,多谢朱老师的点播。递归解法要注意C(self, List, k)返回的是list of list。

 

继续阅读

Longest Common Prefix (Python)

2014年1月30日 01:13

继续阅读

3Sum (Python)

2014年1月30日 00:54

O(N^2)的解法, 对sum排序。先定下来a,在从a~末尾的这一段区间里找b,c, 两头往中间走。需要注意去重, 对于num=[-4,-1,-1,0,1,2]不要出来两组(-1,0,1)

继续阅读

Reverse Integer (Python)

2014年1月29日 18:32

继续阅读

注意head == None的情况,没用到Sorted这个特性,应该有占空间更少的解法。

继续阅读

Two Sum @ LeetCode (Python)

2014年1月29日 13:51

经Derek提醒,可用dict来存每个integer的初始位置。需注意num=[0,4,3,0], target=0这种两加数相等的情况。

 

继续阅读

Endianness=端序=尾序=字节顺序

 

Little-endian=小端序=低位字节存在低内存地址处,(x86,MOS Technology 6502,Z80,VAX,PDP-11等处理器)

Register:0A0B0C0D   Memory: a存0D a+1存0C a+2存0B a+3存0A

 

Big-endian=大端序=反之,(Motorola 6800,Motorola 68000,PowerPC 970,System/370,SPARC(除V9外)等处理器)

Register:0A0B0C0D   Memory: a存0A a+1存0B a+2存0C a+3存0D

 

继续阅读

product 笛卡尔积

permutations 排列

combinations 组合,没有重复

combinations_with_replacement 组合,有重复

 

继续阅读

for (int i = 0; i < 20000; ++i)

    for (int j = 0; j < 2000; ++j)

        for (int k = 0; k < 200; ++k)

            testFunction(i, j, k);

怎么优化?

继续阅读

简单总结语言基础 --> 操作符, 表达式, 语句和块, 控制流语句

 

Operators(操作符)

 

可以有1或2或3个operands操作数. 优先级从高到低

 

继续阅读

简单总结语言基础 --> 变量

 

Variables(变量)

 

在Java中,field一般指下面的前两个, variable可指下面的全部. A type's fields, methods, and nested types are collectively called its members. 变量有这几类:

Instance Variables (Non-Static Fields)实例变量

    没有用关键字static声明, object存自己的状态, 每个类的实例的实例变量的值都不同.

继续阅读

简单总结面向对象编程概念

 

Object(对象)

Software objects have state(状态) in fields (variables) and expose its behavior through methods(方法). 

Data encapsulation = Hiding internal state and requiring all interaction to be performed through an object's methods.

Software objects benefits:

Modularity: The source code for an object can be written and maintained independently of the source code for other objects.

Information-hiding: Internal implementation details remain hidden

Code re-use

Pluggability and debugging ease: Remove a problematic object from your application and plug in a different one.

 

继续阅读

setuid, seteuid函数

2013年12月10日 12:43

不错的一篇文章

32位和64位什么区别?

2013年12月05日 20:41

大致翻译了一下这篇文章,作者Eric Escobar

 

64位和32位的区别?

 

64位或32位指处理器。一个64位的计算机处理器能处理用64比特表示的内存和数据。如果计算机是银行,一台32位计算机有32个取款机,64位计算机有64个取款机。

继续阅读

文章来自阮一峰的网络日志, 清晰易懂。

数据库索引是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据,比如B+-tree。

 

这篇文章讲得很明白: http://www.cnblogs.com/aspnethot/articles/1504082.html

 

尤其喜欢那个关于字典的例子:

 

    汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。

继续阅读

OS X 10.9的词典很好用,三指点击就出释义,但自带的英汉词典词库略小,可用DictUnifier来扩展词库。

 

DictUnifier:https://code.google.com/p/mac-dictionary-kit/downloads/list

我下载的是DictUnifier 2.1,如果提示打不开,因为来自身份不明的开发者,那就按住ctrl键,点击图标,选择打开。

 

词典:http://abloz.com/huzheng/stardict-dic/zh_CN/  

下载的是.tar.bz2格式的词典,将它拖入DictUnifier窗口中即可,转换过程比较漫长。

 

打开词典,菜单栏词典-->偏好设置,选择自己需要的词典就OK了。

OS X下没有apt-get, 试试homebrew

2013年11月18日 00:19

看的这篇教程

 

查找软件包 brew search wget

安装软件包 brew install wget

列出已安装的软件包 brew list

继续阅读

看着http://dev.mysql.com/doc/refman/5.5/en/tutorial.html做的
安装:http://wiki.ubuntu.org.cn/MySQL,首先sudo start mysql, 让mysqld跑起来
MySQL命令不区分大小写,混用也没有问题。
 

继续阅读

import itertools
x = [10, 20, 30, 40, 50]
len = 3
for i in itertools.permutations(x, len):
    if i == tuple(sorted(i)): print i