PAT甲级 1007
来源:互联网 发布:淘宝免邮还有利润吗 编辑:程序博客网 时间:2024/06/06 02:45
使用的是在线处理的方法,发现测试点5没有通过,对比网上AC的代码后,发现了自己没有考虑到数列的末尾是0 然后末尾之前的数都为负数的情况(例如 -1 -1 -1 0)。
所以在更新表示最大子列和的变量值的时候附加一个能判断这样情况的条件,然后更新此时的前后下标。
//在线处理法#include <stdio.h>#include <stdlib.h>int tail;int head = 0;int MaxSubSum(int a[], int N);int main(int argc, char const *argv[]){ int N,MaxSum; int *A; scanf("%d",&N); A = (int *)malloc(N*sizeof(int)); for (int i = 0; i < N; i++) { scanf("%d",&A[i]); } MaxSum = MaxSubSum(A,N); printf("%d %d %d", MaxSum,A[head],A[tail]); return 0;}int MaxSubSum(int a[],int N){ int ThisSum,MaxSum; int temphead; MaxSum = 0; ThisSum = 0; tail = N-1; for (int i = 0; i < N; i++) { if (ThisSum >= 0) { ThisSum += a[i]; } else { ThisSum = a[i]; temphead = i; } if (ThisSum > MaxSum ||(ThisSum == 0 && tail == N-1))//判断0之前都是负数的情况 { tail = i; head = temphead; MaxSum = ThisSum; } } return MaxSum;}// //17// //-10 1 2 3 4 -5 -23 3 7 -21 0 0 1 -1 99 1 98
阅读全文
1 0
- PAT(甲级)1007
- PAT甲级1007
- PAT 甲级1007
- PAT-甲级-1007
- PAT甲级1007
- PAT甲级1007
- PAT甲级 1007
- 浙大PAT甲级-1007
- 【PAT】甲级1007
- PAT甲级 1007
- PAT 甲级
- PAT 1007(甲级)Maximum Subsequence Sum
- PAT甲级 A1025.PAT RANKING
- PAT 甲级 1025 PAT Ranking
- PAT(甲级)1003
- PAT(甲级)1004
- PAT(甲级)1005
- PAT(甲级)1006
- 第二周项目 2—C/C++语言中函数参数传递的三种方式
- spring-mvc拦截器使用
- 关于Tomact接口被占用的问题解决
- 基础排序算法–冒泡排序、选择排序和插入排序
- taskscheduler 引发了异常
- PAT甲级 1007
- 牛客网-剑指offer-15-反转链表
- 常见的端口扫描类型及原理
- 关于如何把图片放入VS 中并且引用的方法.
- hdu2544 最短路
- 课程实践-2017.9.13
- 【oracle】完整性约束
- hihocoder 1427 What a Simple Research
- Nginx相关配置文档