随笔分类 - a) Algorithm learning
摘要:最近遇到的几个有意思问题,记录分享一下。 1. 合并三个有序数组(合并K个有序数组) 假如有这么三个数组:(arr包含的三个数组) 问题:K个数组,总共N个元素,合并成一个有序数组。(以升序为例) 大家一眼看上去肯定会想到归并排序,合并两个有序数组是归并排序的最后一步的动作,通过两个指针引导比较大小
阅读全文
摘要:正常的代码,比较直观的: a = list([4,2,1,7,4,9,6,5,0,3,8]); print(a) def quicksort(left,right) : if left right: return 当i变为left值,第一次结束递归的条件是在左边的,当只有一个数后,递归的left传入
阅读全文
摘要:一:欧几里得算法(辗转相除法) 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 证明: a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a
阅读全文
摘要:因为今天又深入看了下快速排序,加上以前的理解:http://blog.csdn.net/major_zhang/article/details/54314894 http://blog.csdn.net/major_zhang/article/details/51714777找了一些资料,其中提到了
阅读全文
摘要:这个问题是在网易公开课上看到的,传送门:http://open.163.com/movie/2016/7/4/U/MBQOS0ID9_MBQOSMH4U.html 问题描述: 有100个灯泡,编号为1~n,开始都是灭的off状态,在第i回合按下所有编号为i倍数的的开关,灯泡转换一次状态,100回合,
阅读全文