DirectX3D 学习
学习DirectX3D
一组数中找最大的序列(综合)
int
maxSumRect(
int
a[],
int
left,
int
right)
{
if
(left
==
right)
//
base case
if
(a[left]
>
0
)
return
a[left];
else
return
0
;
int
center
=
(left
+
right)
/
2
;
int
maxLeftSum
=
maxSumRect(a, left, center);
int
maxRightSum
=
maxSumRect(a, center
+
1
, right);
int
maxLeftBorderSum
=
0
, leftBorderSum
=
0
;
for
(
int
i
=
center; i
>=
left; i
--
)
{
leftBorderSum
+=
a[i];
if
(leftBorderSum
>
maxLeftBorderSum)
maxLeftBorderSum
=
leftBorderSum;
}
int
maxRightBorderSum
=
0
, rightBorderSum
=
0
;
for
( i
=
center
+
1
; i
<=
right; i
++
)
{
rightBorderSum
+=
a[i];
if
(rightBorderSum
>
maxRightBorderSum )
maxRightBorderSum
=
rightBorderSum;
}
return
max(maxLeftSum,max(maxRightSum,maxLeftBorderSum
+
maxRightBorderSum));
}
int
maxSum2(
int
a[],
int
len)
{
int
maxSum
=
0
;
int
thisSum
=
0
;
for
(
int
i
=
0
; i
<
len; i
++
)
{
thisSum
+=
a[i];
if
(thisSum
>
maxSum)
maxSum
=
thisSum;
else
if
( thisSum
<
0
)
thisSum
=
0
;
}
return
maxSum;
}
void
MaxSubseq_DP(
int
nums[],
int
count,
int
&
resStart,
int
&
resEnd,
int
&
resMax)
{
//
求数组nums[]中连续子序列的最大和,并标出该子序列
//
设 f[x] 为以 a[x] 终止且包含 a[x] 的最大序列的和,有:
//
f[1] = a[1];
//
f[x+1] = f[x] > 0 ? f[x] + a[x+1] : a[x+1]
//
那么最大子序列的和就是 f[1] .. f[n] 中最大的一个
int
start, max;
int
i;
start
=
resStart
=
resEnd
=
0
;
//
初始化当前子序列和最大子序列为nums[0]
max
=
resMax
=
nums[
0
];
for
(i
=
1
; i
<
count;
++
i)
{
if
(max
>
0
)
{
max
+=
nums[i];
}
else
{
max
=
nums[i];
//
抛弃当前子序列
start
=
i;
//
开始新的子序列搜索
}
if
(resMax
<
max)
{
//
更新最大子序列
resMax
=
max;
resStart
=
start;
resEnd
=
i;
}
}
//
for
return
;
}
posted on 2008-09-16 15:51
xpcer
阅读(1085)
评论(0)
编辑
收藏
引用
所属分类:
C++
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
转载 智能指针CComPtr 和 CComQIPtr
(转)多线程
placement new
一个自然数可以分解为若干个自然数相乘,求出每种分解自然数之和最少的一个
删除字符串中的指定字符
一组数中找最大的序列(综合)
Overload & override & hide
句柄
链表逆序
关于变量存储的几个概念
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
统计
随笔 - 16
文章 - 0
评论 - 0
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
C++(13)
(rss)
DirectX(3)
(rss)
Graphic学习
(rss)
Job感受
(rss)
Other
(rss)
Vc++/mfc/wi32
(rss)
随笔档案
2008年11月 (3)
2008年10月 (1)
2008年9月 (12)
Graphics
knowfree.net/
download ebok
www.3dlinks.com
3d engines
www.ebookee.com/
download ebok
搜索
最新评论
阅读排行榜
1. 一个自然数可以分解为若干个自然数相乘,求出每种分解自然数之和最少的一个(2739)
2. 转贴 3D游戏好书(1841)
3. 转载 智能指针CComPtr 和 CComQIPtr(1273)
4. (转)多线程(1180)
5. 一组数中找最大的序列(综合)(1085)
评论排行榜
1. 字符串的颠倒(0)
2. 字符串的全排序(0)
3. 求一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数(0)
4. 关于变量存储的几个概念(0)
5. 链表逆序(0)