摘要:
题目:要求一个数组连续下标和的最大值,数组的元素可正、可负、可为零,例如-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
阅读(13650)
评论(2)
推荐(3)
摘要:
计算某一天是星期几的公式如下: 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
阅读(615)
评论(0)
推荐(0)

浙公网安备 33010602011771号