![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经典算法
文章平均质量分 79
小李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 · 494 阅读 · 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 0nubmers = [18,11,21,28,...原创 2015-04-22 14:22:20 · 630 阅读 · 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 · 1230 阅读 · 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 · 5052 阅读 · 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 · 557 阅读 · 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 · 191 阅读 · 0 评论 -
Python算法笔试题目,破解Hash值,N进制法
Find the string whichhas this hash: 25267566250558The string has length8.Characters can befrom: c,e,i,a,r,w,u,s,pThe hash functionworks like this:hash(str): 1.LETTERS = c, e, i, a, r, w, ...原创 2018-12-21 10:59:49 · 233 阅读 · 0 评论 -
某公司第5题
忘了题目是什么了,有时间逆推一下。# method 3ll="1234567890 "ls='abcdefghijklmnopqrstuvwxyz'# method 2i = 0def solve(arr):ans = []for i in xrange(len(arr)):if i % 2 == 0:ans.append(arr[i])i += 1return ...原创 2015-04-22 14:17:37 · 478 阅读 · 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 · 685 阅读 · 0 评论 -
数字三角形
数字三角形,打印出来是靠左边的,不是正三角形原创 2015-04-22 09:38:07 · 457 阅读 · 0 评论 -
Python面试题,排列生成的解法,最优解答
有两个序列a,b, 大小都为n, 序列元素的值为任意整型数,无序; 要求:通过交换a,b中的[序列a元素的和]与[序列b元素的和]之间的差最小。 我的解答:最后的解答结果都是我见到的测试方法,此方法本质上是穷举法,必然是最优解答。 在递归函数里保存列表is_used(用来保存某个元素是否已经用过了)的时候,一定要注意用copy.deepcopy.不然保存的所有...原创 2015-04-25 13:52:07 · 582 阅读 · 0 评论 -
Python笔试题目:求最大的K个数子,解法三,适合大型数据集的情况
#coding=utf-8 ## generate random numbersfrom random import randint# low and high limit of the numbers of the random numberlow = -10000000high = 10000000 low_big = 100000000high_big = 200000...原创 2018-12-21 11:04:48 · 216 阅读 · 0 评论