摘要:
题目:要求一个数组连续下标和的最大值,数组的元素可正、可负、可为零,例如-2,5,3,-6,4,-8,6将返回8。这题是很经典的一道面试题,也有各种解法,从算法分析上,时间复杂度也有很大差别,下面我就给出三种不同的解法。方法一:暴力枚举法此种方法最简单,我想应该也是每个人拿到题目想到的第一种解法了,学过一点编程的人都应该能编出此类程序。记sum[i..j]为数组中第i个元素到第j个元素的和(其中0<=i<j<=n-1),通过遍历所有的组合之和,就能找到最大的一个和了。伪代码如下:int maxSubArray(int *A,int n) { int maxium = -INF 阅读全文
posted @ 2012-05-17 15:21
Mr.Rico
阅读(13644)
评论(2)
推荐(3)
摘要:
了解各种不同意义的new 和 delete C++中关于new 的形态主要有三种:new operator, operator new, placement new 三者的用法有着不同,注意区别适用的条件: new operator: new 操作符,和C++语言其它操作符(如+, -, ->, ::....)一样,是由语言内建的,总是完成相同的事情,程序员不能改变其意义。如下为new的一种用法: string *ps = new string("hazirguo"); 它主要完成的任务包括三个方面: 分配足够的内存,用来放置某类型对象。上例中分配足够放置一个stri 阅读全文
posted @ 2012-05-17 13:19
Mr.Rico
阅读(343)
评论(0)
推荐(0)
摘要:
了解临时对象的来源 什么是临时对象? C++真正的临时对象是不可见的匿名对象,不会出现在你的源码中,但是程序在运行时确实生成了这样的对象. 通常出现在以下两种情况: (1)为了使函数调用成功而进行隐式类型转换的时候。 传递某对象给一个函数,而其类型与函数的形参类型不同时,如果可以通过隐式转化的话可以使函数调用成功,那么此时会通过构造函数生成一个临时对象,当函数返回时临时对象即自动销毁。如下例: //计算字符ch在字符串str中出现的次数 int countChar (const string& str, char ch); char buffer[];... 阅读全文
posted @ 2012-05-17 12:46
Mr.Rico
阅读(20902)
评论(10)
推荐(8)
摘要:
说说计算机中的异常 开篇 异常这个名词应该大家都不陌生,很多人都听说过。系统调用知道吧?其实系统调用也是一种异常。但是具体的什么是异常呢?他在计算机中有什么作用?他是如何工作,如何被我们利用的?我想很多人都还不都是很清楚。、 了解异常有诸多好处,可以让你更好的理解操作系统和应用程序的交互,更好的理解并发等。 所以今天就简单的来说一下异常。 注:本博文图片来源《Computer system-A Programmer's Perspective》 什么是异常 为了便于理解,我就不按照书本来了啊,异常可以这样理解: 计算机执行一个连续的指令序列,如:a1,a2,a3... 阅读全文
posted @ 2012-05-17 12:32
Mr.Rico
阅读(260)
评论(0)
推荐(0)
摘要:
计算某一天是星期几的公式如下: W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D.其中Y是年份,D是改天是Y年的第几天。具体的解释见这儿 具体代码如下:#include<iostream>#include<string>#include<sstream>usingnamespacestd;constintMONTH[12]={31,28,31,30,31,30,31,31,30,31,30,31,};conststringWEEK[]={"SUN","MON", 阅读全文
posted @ 2012-05-17 00:00
Mr.Rico
阅读(610)
评论(0)
推荐(0)

浙公网安备 33010602011771号