原题链接: 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
详解本文前,先来说说什么是操作系统吧,要不,大家可能都不知道自己在看些什么。下图,可以非常形象的表示操作系统及它的相关内容。本文主要详细介绍一下操作系统的进程管理功能。
上图可以看出,操作系统是位于计算机硬件和应用软件之间的,有效组织和管理系统中各种软、硬件资源。它通过资源管理,提高了计算机系统的效率;也改善了人机界面,不需要我们直接面对简单且复杂的0和1了,向用户提供了友好的工作环境...
分类:
其他好文 时间:
2014-07-22 23:01:33
阅读次数:
376
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭
互联网的网站和大部分企业管理软件一样都是使用B/S架构模型,但是大型的公共网站B/S架构会更加复杂,对架构人员的要求更高,今天我想在自己博客里聊聊我设计的网站的B/S技术架构。
不管是B/S架构的企业管理...
分类:
Web程序 时间:
2014-05-12 17:56:25
阅读次数:
515
从Linux2.5开始Linux实现了0(1)调度算法, 算法的思想要点在于设定动态的nice值确定优先级, 在优先级数组调度(数组最大长度是固定常数) 简而言之,不管系统中有多少进程需要调度都可以在o(1)的时间复杂度内完成调度,是不是很吊啊?但是实践证明(我没证明,文献说的) o(1)对i/o交互型的调度体验上表现很差 轮转周期很不灵活,主要原因在于调度出发点采用粒度很大时间片进行轮换,诚然整体负载会比较好,但是对于i/o交互型的,我们理想的调度策略是采用处理器使用比而不是时间片来分配, ...
分类:
系统相关 时间:
2014-05-02 21:18:41
阅读次数:
460
概述
将抽象部分(Abstraction)与实现部分(Implementor)分离,使它们可以独立地变化。解决
在软件系统中,有些类型由于自身的逻辑,它具有两个或多个维度的变化。为了解决这种多维度变化,又不引入复杂度,这就要使用Bridge模式。角色
抽象(Abstraction):定义抽象接...
分类:
其他好文 时间:
2014-05-02 15:49:19
阅读次数:
287
从myeclipse转到Eclipse最不方便的之一莫过于Web项目部署了,老是在想怎么不能把myeclipse的那个移植过来,或者有没有高人能按照Myeclipse开发一个,非常遗憾。
原版的Eclipse自带WTP,WTP本身的Web应用服务器管理功能还可以,但有些复杂。要想把它用顺手,还要花...
分类:
系统相关 时间:
2014-05-02 11:18:41
阅读次数:
471
本题因为数据量小,可以使用暴力法,时间效率是O(n^3)
但是这里巧用最大子段和的思想,可以把时间效率降到O(n)
思想:
1 想使用一个新的数列,计算连续出现了多少个1和连续出现了多少个零
2 求这个新数列的最大子段和
3 Flip最大子段中的 0 和 1,
4 计算出结果
比暴力法复杂很多了,但是时间效率却提高了三个档次。...
分类:
其他好文 时间:
2014-05-02 10:39:46
阅读次数:
584
自己写的代码考虑未周全,引入了额外的空间复杂度://求数组的子数组之和的最大值#include
#define N 12using namespace std;int main(){ //int a[]={-5,2,3,-3,-2,3,1,-5};
//int a[]={-5,2,0,3...
分类:
其他好文 时间:
2014-05-02 01:59:35
阅读次数:
254
GameServer以前访问DBcenter时同步的,这样服务器都要等待DBcenter返回结果,经理在DBcenter和GameServer之间加了一个asynDBCenter,就实现了异步,感觉还是很复杂,当然经理就20分钟搞定的事,主要函数:bool
asynDBCenter::get_fro...
分类:
数据库 时间:
2014-05-02 01:27:05
阅读次数:
387
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