当前位置:网站首页>PAT1007
PAT1007
2022-08-09 11:09:00 【AlanLiu6】
暴力解法
https://pintia.cn/problem-sets/994805342720868352/problems/994805514284679168
#include<cstdio>
int num[10005];
int main()
{
int k;
scanf("%d",&k);
for(int i = 0;i < k;i++)
{
scanf("%d",&num[i]);
}
int sum=0,first=0,last=k-1;
for(int i = 0;i < k;i++)
{
int tSum=0;
for(int j = i;j < k;j++)
{
tSum += num[j];
if(tSum > sum ||(tSum == sum &&tSum == 0))
{
first = i;
last = j;
sum = tSum;
}
}
}
printf("%d %d %d\n",sum,num[first],num[last]);
return 0;
}
非暴力写法, 来源
#include <iostream>
#define mm 10001
using namespace std;
int maxsequence3(int a[], int len);
int start=0;
int last=0;
int main()
{
int M,arr[mm]={0};
int max=0;
cin>>M;
for(int i=0;i<M;i++)
cin>>arr[i];
int j=0;
while(arr[j]<0&&j<M)
j++;
if(j==M)
{
cout<<"0 "<<arr[0]<<" "<<arr[M-1];
return 0;
}
int sum=maxsequence3(arr, M);
cout<<sum<<' '<<arr[start]<<' '<<arr[last];
return 0;
}
int maxsequence3(int a[], int len)
{
int maxsum, maxhere,temp_start,temp_last;
temp_start=0;
temp_last=0;
maxsum=a[0];
maxhere=a[0]; //初始化最大和为a【0】
for (int i=1;i<len;i++)
{
if (maxhere<= 0)
{
maxhere=a[i]; //如果前面位置最大连续子序列和小于等于0,则以当前位置i结尾的最大连续子序列和为a[i]
temp_start=i;
}
else
{
maxhere+=a[i]; //如果前面位置最大连续子序列和大于0,则以当前位置i结尾的最大连续子序列和为它们两者之和
temp_last=i;
}
if (maxhere>maxsum)
{
maxsum=maxhere; //更新最大连续子序列和
start=temp_start;
last=temp_last;
}
}
if(start>last)
last=start;//避免出现下面状况start不断更新,而last保持第一个不变,所以额外添加这个if判断语句,如果输入序列为 -1 -2 -3 0 -4,这个if判断就是必须的
return maxsum;
}
边栏推荐
猜你喜欢
Number theory knowledge
Qt读写.ini配置文件
ICML 2022 | Out-of-Distribution检测与深最近的邻居
golang源代码阅读,sync系列-Pool
信息系统项目的十大管理
OpenSSF's open source software risk assessment tool: Scorecards
electron 应用开发优秀实践
Tensorflow realize parameter adjustment of linear equations
图片查看器viewer
Error: Cannot find module ‘./application‘
随机推荐
去除蜂窝状的噪声(matlab实现)
prometheus接入mysqld_exporter
Open3D point cloud average point spacing evaluation
Number theory knowledge
无刷无霍尔BLCD电机控制
双向链表的各种操作
verbose np.matmul/np.dot/np.multiply/tf.matmul/tf.multiply/*
Arduino学习总结 + 实习项目
CentOS6.5 32bit安装Oracle、ArcSde、Apache等配置说明
【C language】动态数组的创建和使用
程序员的专属浪漫——用3D Engine 5分钟实现烟花绽放效果
log4net使用指南(winform版,sqlserver记录)
ThreadLocal及其内存泄露分析
彻底理解工厂模式
Qt读写.ini配置文件
Quartz的理解
Getting Started with MNIST Machine Learning
CentOS6.5 32bit安装Oracle-11gR2步骤说明
杂记(6)
全网最简单解决OneNote中英字体不统一