算法
文章平均质量分 79
0o死水o0
这个作者很懒,什么都没留下…
展开
-
算法题--数组中出现次数不同的数字
1. 初级版描述:一个整型数组里除了1个数字之外,其他的数字都出现了两次,请写程序找出这个只出现一次的数字。 思路:利用异或的特性,x^y^x=x^x^y=y。对数组所有元素进行一次异或操作,最后得到的就是只出现一次的数字。 1.1变化版描述:一个整型数组里除了2个数字之外,其他的数字都出现了两次,请写程序找出这两个只出现1次的数字。 思路:1. 两个数字肯定是不同的,则必有某一位上,两个数字是不...原创 2018-03-07 22:38:35 · 706 阅读 · 0 评论 -
算法题-leetcode-最长递增子序列
问题:300. Longest Increasing Subsequence Given an unsorted array of integers, find the length of longest increasing subsequence.For example,Given [10, 9, 2, 5, 3, 7, 101, 18],The longest increasing subs...原创 2018-03-22 12:43:27 · 933 阅读 · 0 评论 -
算法题--(i & -i)的特性(Leetcode No.315)
最近在leetcode上做了一道题(No.315),查看一份耗时较少的代码时,发现其思路与其他的做法不同,没有采用“分治”的思想,但同样达到了较高的效率。 题目:315. Count of Smaller Numbers After Self You are given an integer arraynumsand you have to return a newcount...原创 2018-04-10 15:14:16 · 942 阅读 · 2 评论 -
gcd和egcd算法
欧几里德算法(gcd)又称辗转相除法,用于计算两个整数a,b的最大公约数。基本思路:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。代码(python):[python] view plain copydef gcd(a,b): if b==0: return a else: ...转载 2018-03-29 15:31:10 · 1528 阅读 · 0 评论