2015年9月16日

有默认参数的函数,默认参数为何需后置

摘要: 学习python时思考的一个问题。http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000... 阅读全文

posted @ 2015-09-16 17:23 EmmaLi 阅读(305) 评论(0) 推荐(0) 编辑

2015年6月4日

编程之美2.16——求数组中最长递增子序列

摘要: 如:1,-1,2,-3,4,-5,6,-7中,最长递增子序列是1,2,4,6.【解法1】假设在目标数组array[]的前i个元素中,最长递增子序列的长度为LIS[I],那么对于任意karray[k]时,LIS[i+1]=LIS[K]+1,否则LIS[i+1]=1。此法特点:在考虑第i+1个元素的时候... 阅读全文

posted @ 2015-06-04 16:27 EmmaLi 阅读(138) 评论(0) 推荐(0) 编辑

2015年5月21日

编程之美2.13——子数组的最大乘积

摘要: 给定义个长度为N的整数数组,只允许用乘法,不能用除法,计算在任意(N-1)的个数的组合中乘积最大的一组。【思路】突然变成了雅黑,挺不习惯的~~还是雅黑好看✪ω✪实现起来很简单,但我是不会想到这样的思路的……看来除了积累别想着有别的途径来提高了π__π1.用空间换时间,开数组s和t,分别保存从前向后的... 阅读全文

posted @ 2015-05-21 15:41 EmmaLi 阅读(448) 评论(0) 推荐(0) 编辑

2015年5月19日

编程之美2.8——找符合条件的整数

摘要: 任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0.如N=3,M=39,N*M=111。【思路】这么难的思路打死我也想不到.@_@|||||..将题目转换为,求一个数X,使得X%N=0且X的十进制表示只含有1和0.维护一个“余数数组”,对于从0到N-1的每... 阅读全文

posted @ 2015-05-19 16:06 EmmaLi 阅读(487) 评论(0) 推荐(0) 编辑

编程之美2.7——最大公约数

摘要: 求两数最大公约数。【思路】1.常规:设求最大公约数算法为f(m,n),则f(m,n)=f(n,m%n)(m>n>0).当n==0时,返回m原理:x=ky+b,则f(x,y)=f(y,b)。缺点:除法或取余运算代价较大2.用减法替代取余。即f(m,n)=f(n,m-n)(m>n>0).缺点:增加了迭代... 阅读全文

posted @ 2015-05-19 09:34 EmmaLi 阅读(269) 评论(0) 推荐(0) 编辑

2015年5月15日

编程之美2.5——寻找最大的K个数

摘要: 一列数中寻找最大K个数。【思路】1.常规思路,排序,数前K个数。缺点:时间O(nlogn),总个数n和k差距大的时候,比如k=1,很不实用。如果k src, vector& s1, vector& s2){ int len=src.size(); int p=src[rand()%len... 阅读全文

posted @ 2015-05-15 14:51 EmmaLi 阅读(252) 评论(0) 推荐(0) 编辑

2015年5月14日

编程之美2.4——计算1的个数

摘要: 计算从1到整数N之间的所有整数,1出现的次数。记为f(N).比如12:1,10,11,12 1出现5次。【思路】1.常规解法,先计算任意一个整数N中所含的1的个数,比如13含1个1,然后再套一个从1到N的循环,计算每个数出现1的次数。2.总结规律。f(N)=个位出现1的个数+十位出现1的个数+百位出... 阅读全文

posted @ 2015-05-14 15:56 EmmaLi 阅读(231) 评论(0) 推荐(0) 编辑

编程之美2.3——寻找水军(抵消法)

摘要: 1.在数组中寻找出现次数超过一半的一个元素。2.在数组中寻找出现次数超过1/4的三个元素。【思路】1)常规做法:先将数组排序,时间O(nlogn);再遍历一次,统计每个元素出现的次数,得到题目要求。2)时间O(n)的做法:抵消法。对于第一题,每次抵消两个不同的数,剩下的数组主元素出现次数还是超过一半... 阅读全文

posted @ 2015-05-14 11:10 EmmaLi 阅读(426) 评论(0) 推荐(0) 编辑

2015年5月13日

OJ练习49——T16 3Sum Closest

摘要: 找一个序列中三个数,其和与给定的target最接近。【思路】还是练习48中总结的,将题目变成2sum。【my code】int threeSumClosest(vector& num, int target) { int result=0; int sub=INT_MAX... 阅读全文

posted @ 2015-05-13 09:34 EmmaLi 阅读(230) 评论(0) 推荐(0) 编辑

2015年5月12日

OJ练习48——T15 3Sum

摘要: 找一列整数中和为0的三个数,要求返回结果按序排列,且返回的序列之间互不相同。例如:array S = {-1 0 1 2 -1 -4},A solution set is:(-1, 0, 1) (-1, -1, 2)【思路】(看来的,自己真是没有一点算法头脑)对于每一个当前数,用2sum算法求剩下的... 阅读全文

posted @ 2015-05-12 11:34 EmmaLi 阅读(258) 评论(0) 推荐(0) 编辑

导航