
经典算法
文章平均质量分 83
小李34234324
爱好Data Structures, Algorithms, Python/C++/Java/JavaScript/Scala/Golang, Machine Learning, AI, 大数据等
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
实现range()和xrange()
请实现range和xrange。 我的解答如下: def range(start, stop = 0, step = 1): val = [] # when stop and step are not provided if stop == 0: i = 0 while(i < start): val.append(i ) i += 1 ...原创 2015-04-22 14:14:08 · 543 阅读 · 0 评论 -
某公司第七题
def sum_possible(arr, N): arr_length = len(arr) for i in xrange(arr_length): for j in xrange(i,arr_length): if N == arr[i] + arr[j]: return 1 return 0 nubmers = [18,11,21,28,...原创 2015-04-22 14:22:20 · 723 阅读 · 0 评论 -
素数的筛法,n*long(n)和O(n)的写法
需求: 产生区间[0, N]之间的素数。 最简单的方法是,一个一个套,但是每试探一个数n, 需要枚举sqrt(n)次,所以这种算法的时间复杂度就是O(N*sqrt(N)), 也就是N*N。 那么效率更加高一点的方法是,把每个素数的2,3,4,... x, (x void sieveOne(){ int m = sqrt(N+0.5); for(int i=2; i<= m;原创 2016-06-03 18:47:36 · 1286 阅读 · 0 评论 -
求数组的第K小数,O(nlogn) 和 O(N)的算法
在面试中碰到求数组中第K小的数,(或者最小的的K个数)。 最直观的方法是排序之后,选择数组A的元素A[K-1]; 以快速排序为例,排序的时间复杂度为O(NlogN), 选择元素的时间为O(1)。 如果允许使用额外空间,则排序算法可以使使用时间复杂度为O(N)的基数排序。 如果时间复杂度要O(N), 不使用额外空间的话,可以借用快速排序中partition函数来达到想要的结果原创 2016-06-12 14:06:41 · 5161 阅读 · 0 评论 -
句子反转
句子反转题:输入“I am a student.”,则输出“student. a am I”。 本测试测试样是 "Alice is a good student.$^” # word reverse: input "I am a student.", then output "student. a am I" # input_string = "the sky is bl...原创 2015-07-05 23:23:20 · 606 阅读 · 0 评论 -
Python在Win8.1上安装完之后,Python在安装pip时报错的问题
Python在Win8.1上安装完之后,Python在安装pip时报错,我这次发现的问题按照网上很多修改编码的方法之后,还是不行。发现自己的用户名是由hotmail/Outlook的信息———我的中文名字决定的。这样我的用户名就是中文了。用执行python get-pip.py 的方法安装pip的时候,注意到出错的原因似乎和目录里的中文字有关系。于是新建了一个以拼音作为名字的用户,就这样, pip...原创 2018-12-21 10:56:56 · 237 阅读 · 0 评论 -
Python算法笔试题目,破解Hash值,N进制法
Find the string whichhas this hash: 25267566250558 The string has length8. Characters can befrom: c,e,i,a,r,w,u,s,p The hash functionworks like this: hash(str): 1.LETTERS = c, e, i, a, r, w, ...原创 2018-12-21 10:59:49 · 288 阅读 · 0 评论 -
某公司第5题
忘了题目是什么了,有时间逆推一下。 # method 3 ll="1234567890 " ls='abcdefghijklmnopqrstuvwxyz' # method 2 i = 0 def solve(arr): ans = [] for i in xrange(len(arr)): if i % 2 == 0: ans.append(arr[i]) i += 1 return ...原创 2015-04-22 14:17:37 · 517 阅读 · 0 评论 -
去掉Python中列表的重复值
l1 = ['b','c','d','b','c','a','a'] l2 = [] #! this .append() [l2.append(i) for i in l1 if not i in l2] print l2原创 2015-04-22 14:26:57 · 728 阅读 · 0 评论 -
数字三角形
数字三角形,打印出来是靠左边的,不是正三角形原创 2015-04-22 09:38:07 · 522 阅读 · 0 评论 -
Python面试题,排列生成的解法,最优解答
有两个序列a,b, 大小都为n, 序列元素的值为任意整型数,无序; 要求:通过交换a,b中的[序列a元素的和]与[序列b元素的和]之间的差最小。 我的解答: 最后的解答结果都是我见到的测试方法,此方法本质上是穷举法,必然是最优解答。 在递归函数里保存列表is_used(用来保存某个元素是否已经用过了)的时候,一定要注意用copy.deepcopy. 不然保存的所有...原创 2015-04-25 13:52:07 · 634 阅读 · 0 评论 -
Python笔试题目:求最大的K个数子,解法三,适合大型数据集的情况
#coding=utf-8 ## generate random numbers from random import randint # low and high limit of the numbers of the random number low = -10000000 high = 10000000 low_big = 100000000 high_big = 200000...原创 2018-12-21 11:04:48 · 261 阅读 · 0 评论