码迷,mamicode.com
首页 > 其他好文 > 详细

1007. Maximum Subsequence Sum (25) C#实现

时间:2014-09-01 15:25:13      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   for   div   代码   log   sp   

代码如下:

 1  public static int F=0,L=0;
 2 
 3         static void Main(string[] args)
 4         {
 5             int first = 0;//当前取最大值时,对应的第一个数
 6             int last = 0;//当前取最大值时,对应的最后一个数
 7             int P = 0;//当前最大值
 8             int K;
 9             int[] N;//存放K个连续的整数
10 
11             K=Convert.ToInt32(Console.ReadLine());
12             N = new int[K];
13             string[] str = Console.ReadLine().Split(new Char[]{ });
14             for (int i = 0; i < K; i++)
15             {
16                 N[i] =int.Parse(str[i]);//存值
17             }
18 
19             //先初始化
20             P = maxnum(K, 1, N);
21             first = F;
22             last = L;
23 
24             for (int i = 2; i <= K; i++)
25             {
26                 if (maxnum(K,i,N) > P)
27                 {
28                     P = maxnum(K, i, N);
29                     first = F;
30                     last = L;
31                 }
32                 else if (maxnum(K, i, N) == P && first > F)//最大值相同,但是最小索引不同时
33                 {
34                     P = maxnum(K, i, N);
35                     first = F;
36                     last = L;
37                 }
38             }
39 
40             Console.Write(P+" "+first+" "+last);
41             Console.ReadKey();
42 
43         }
44 
45         //  求当以group为连续长度时,其最大值
46         //  及设置此时最大数最小数值
47         public static int maxnum(int K,int group,int[] N)
48         {
49             int MAX=0;
50             int j,i;
51             int temp;
52             for (i=0; i <= K - group; i++)
53             {
54                 temp = 0;
55 
56                 for (j=0; j < group; j++)
57                 {
58                     temp += N[i + j];
59                 }
60 
61                 if (temp > MAX)
62                 {
63                     MAX = temp;
64                     F = N[i];//设置全局变量
65                     L=N[i+j-1];//设置全局变量
66                 }
67             }
68 
69             if (MAX < 0&&group==1)//当所有数均为负数时,设置值
70             {
71                 F = N[0];
72                 L = N[K-1];
73                 return 0;
74             }
75             else
76                 return MAX;
77             
78         }

 

1007. Maximum Subsequence Sum (25) C#实现

标签:style   blog   color   ar   for   div   代码   log   sp   

原文地址:http://www.cnblogs.com/zyszeal/p/3949206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!