原题链接: http://oj.leetcode.com/problems/4sum/
这道题要求跟3Sum差不多,只是需求扩展到四个的数字的和了。我们还是可以按照3Sum中的解法,只是在外面套一层循环,相当于求n次3Sum。我们知道3Sum的时间复杂度是O(n^2),所以如果这样解的总时间复杂度是O(n^3)。代码如下:public ArrayList> fourSum(int[] num,...
分类:
其他好文 时间:
2014-07-22 23:01:34
阅读次数:
328
一. 什么是二分查找
二分查找又称为折半查找,该算法的思想是将数列按序排列,采用跳跃式方法进行查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。以此类推不断缩小搜索范围。
二. 二分查找的条件
二分查找的先决条件是查找的数列必须是有序的。
三. 二分查找的优缺点
优点:比较次数少,查找速度快,平均性能好;...
分类:
编程语言 时间:
2014-07-22 23:00:14
阅读次数:
512
小明系列问题——小明序列
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1567 Accepted Submission(s): 463
Problem Description
大家都知道小明最喜欢研究...
分类:
其他好文 时间:
2014-05-03 00:40:15
阅读次数:
348
MFC的消息循环(::GetMessage,::PeekMessage)消息泵(CWinThread::PumpMessage)和MFC的消息在窗口之间的路由是两件不同的事情分两个步骤完成:1
“消息派送”:非对话框程序(MFC Doc/View架构)和对话框程序略有不同,但原理相差不大。但除了少数...
分类:
其他好文 时间:
2014-05-02 02:01:44
阅读次数:
351
题目题意:有n1个o, n2个r, n3个z, n4个~, 求有多少种组合使
组合出来的字符串的任意前缀都满足 o的个数>=r的个数,r的个数>=z的个数 ……………………思路:递推,枚举用四重循环控制orz~的个数符合题意,
然后当前个数的orz~等于之前orz~分别少一个推过来的,所以相加上,注...
分类:
其他好文 时间:
2014-05-02 00:24:58
阅读次数:
318
C语言的控制流程是基础中的基础,几乎没有程序不用到选择和循环控制的,今天又来看这些内容,以求入门。选择结构:
只有一个选项:这个肯定很easy啊,就是 if(expression){ Statements; } 这里就是要注意代码的简单易懂,ex...
分类:
编程语言 时间:
2014-05-02 00:19:50
阅读次数:
333
You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
刚开始没有思路,但是自己举了几个简单的栗子才看出规律:需要一圈儿一圈儿的变换位置。有两层for循环:外...
分类:
其他好文 时间:
2014-05-01 18:33:34
阅读次数:
359
strassen算法可以看做是分治递归法求解矩阵乘法的改进。
利用分治递归法求解矩阵乘法的过程大致:
矩阵C = A * B(A、B、C都是n x n矩阵)
可以发现(A11 * B11)、(A12 * B21)……等子矩阵的乘法运算需要继续递归。上面有8个乘法,所以需要递归8次。
时间复杂度关系公式 T(n) = 8T(n/2) + O(n^2),这里8T(n/2)是8次递归...
分类:
其他好文 时间:
2014-05-01 08:43:52
阅读次数:
549
描述 Description
给出2个序列A={a[1],a[2],…,a[n]},B={b[1],b[2],…,b[n]},从A、B中各选出n个元素进行一一配对(可以不按照原来在序列中的顺序),并使得所有配对元素差的绝对值之和最大。
输入格式 InputFormat
输入的第1行为1个整数n
第2行包含n个整数,题目中的A序列。
第3行包含n个整数,题目中的B序列。
输出格...
分类:
其他好文 时间:
2014-05-01 08:33:52
阅读次数:
292
Splay 树的比较基本的序列维护操作, 用getSeg( int l, int r) 获取要操作的区间
若:获取区间[l,r],非空,getSeg(l,r),然后KT指向区间[l,r]
若:获取区间为空,如当要在l位置插入一个值时,则getSeg(l,l-2),然后可在KT赋值新节点
D. Cup Trick
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-04-30 22:14:40
阅读次数:
326