1007. Maximum Subsequence Sum (25)
来源:互联网 发布:支票打印软件免费版 编辑:程序博客网 时间:2024/05/11 15:14
题目大意
最大子列和,如果所有数都是负数输出 0 a[0] a[i]
思路
逐个扫描数组,MaxSum为最终的和,ThisSum为当前的子列和,x,y,是最大子列和的左右下标,,tempX 是临时的x。
ThisSum > MaxSum时更新MaxSum = ThisSum,y是当前的下标i,x=tempX。
ThisSum < 0时更新ThisSum = 0,tmpX = i+1。
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main(){ int k, *array; scanf("%d", &k); array = (int *)malloc(sizeof(int)*k); int flag, ThisSum, MaxSum, x, y, tmpX; flag = ThisSum = MaxSum = x = y = tmpX = 0; MaxSum = -1; for (int i = 0; i < k; i++) { scanf("%d", &array[i]); if (array[i] >= 0) flag = 1; ThisSum += array[i]; if (ThisSum > MaxSum) { MaxSum = ThisSum; y = i; x = tmpX; } else if (ThisSum < 0) { ThisSum = 0; tmpX = i + 1; } } if (0 == flag) printf("0 %d %d", array[0], array[k - 1]); else printf("%d %d %d", MaxSum, array[x], array[y]); system("pause"); return 0;}
0 0
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 【树莓派】更换第三方软件源
- 批处理操作系统与分时操作系统
- Ajax学习笔记
- 在一台机器上通过JMX进行跨JVM的本地调用
- Http协议中的编码和解码-2
- 1007. Maximum Subsequence Sum (25)
- 蓝桥杯第七届剪邮票(java)
- SpringMVC(四)ModelAndView
- android Volley: [461] BasicNetwork.performRequest: Unexpected response code 400 for xxxxx
- WinForm主窗体的属性及事件
- 一键重装系统win7方法分享
- 学习笔记之Document Object Model(1)——如何使用document获得文档元素(element对象)
- LeetCode_5 Longest Palindromic Substring
- HTTP请求头和响应头