Ex 6_1 和最大的相连子序列..._第五次作业
设数值列表a0,a1 . . . an存放在数组arr[0. . .n]中. sum[0],sum[1],sum[2] . . . .sum[n]为以该下标为终点元素的连续子序列的和的最大值,则sum[i]=max{sum[i-1]+arr[i],arr[i]}
package org.xiu68.ch06.ex5; public class Ex6_1 {
/*
* 求和最大的连续子序列
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr=new int[]{5,15,-30,10,-5,40,10};
int[] arr2=new int[]{10,-11,8,-9,1,2,3,-1,4,5,-7};
computMaxSubSum(arr); //10 -5 40 10
computMaxSubSum(arr2); //1 2 3 -1 4 5
} /*
* 依据递推式:sum[i] = max{sum[i-1]+arr[i],arr[i]}
*/
public static void computMaxSubSum(int[] arr){
if(arr==null || arr.length==0){
System.out.println("最长子序列为0");
return;
}
int[] sum=new int[arr.length]; //记录以该元素为终点的子序列的和的最大值
int[] digitNum=new int[arr.length]; //记录以该元素为终点的子序列的长度
int index=0; //记录和最大的连续子序列的最后一个元素下标
sum[0]=arr[0];
digitNum[0]=1;
int maxSum=arr[0]; //记录最大连续子序列的和 for(int i=1;i<arr.length;i++){
if(sum[i-1]+arr[i]<arr[i]){
sum[i]=arr[i];
digitNum[i]=1;
}
else{
sum[i]=sum[i-1]+arr[i];
digitNum[i]=digitNum[i-1]+1;
} if(maxSum<sum[i]){
maxSum=sum[i];
index=i;
}
}//for
System.out.print("和最大的最长子序列:");
for(int i=index-digitNum[index]+1;i<=index;i++)
System.out.print(arr[i]+" ");
System.out.println();
System.out.println("和为:"+maxSum);
} }
Ex 6_1 和最大的相连子序列..._第五次作业的更多相关文章
- Ex 6_3 修建酒店所获得的利润..._第五次作业
假设profit[i]为在前i个位置修建酒店所获得的最大利润,当i=0时,profit[0]=0.当i>0时,若j为上一个满足m[i]-m[j]k的位置.若profit[i-1]>prof ...
- Ex 6_2 假设您准备一次长途旅行..._第五次作业
假设n个旅馆距离原点的距离存放在数组arr[0. . .n-1]中,punish[0. . .n-1]表示在某个旅馆停留时所受的的惩罚的最小值.当然在第一个旅馆停留时所受到的惩罚为0,即punish[ ...
- BZOJ_2124_等差子序列_线段树+Hash
BZOJ_2124_等差子序列_线段树+Hash Description 给一个1到N的排列{Ai},询问是否存在1<=p1<p2<p3<p4<p5<…<pL ...
- ArcGIS for Desktop入门教程_第五章_ArcCatalog使用 - ArcGIS知乎-新一代ArcGIS问答社区
原文:ArcGIS for Desktop入门教程_第五章_ArcCatalog使用 - ArcGIS知乎-新一代ArcGIS问答社区 1 ArcCatalog使用 1.1 GIS数据 地理信息系统, ...
- nyoj133_子序列_离散化_尺取法
子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 给定一个序列,请你求出该序列的一个连续的子序列,使原串中出现的所有元素皆在该子序列中出现过至少1次. 如2 8 ...
- [bzoj3173]最长上升子序列_非旋转Treap
最长上升子序列 bzoj-3173 题目大意:有1-n,n个数,第i次操作是将i加入到原有序列中制定的位置,后查询当前序列中最长上升子序列长度. 注释:1<=n<=10,000,开始序列为 ...
- [bzoj2124]等差子序列_线段树_hash
等差子序列 bzoj-2124 题目大意:给定一个1~n的排列,问是否存在3个及以上的位置上的数构成连续的等差子序列. 注释:$1\le n\le 10^4$. 想法:这题就相当于是否存在3个数i,j ...
- [Cometoj#4 E]公共子序列_贪心_树状数组_动态规划
公共子序列 题目链接:https://cometoj.com/contest/39/problem/E?problem_id=1585 数据范围:略. 题解: 首先可以考虑知道了$1$的个数和$3$的 ...
- [Cometoj#3 C]子序列子序列子序列..._动态规划_数论
子序列子序列子序列... 题目链接:https://cometoj.com/contest/38/problem/C?problem_id=1542 数据范围:略. 题解: 神仙题,感觉这个题比$D$ ...
随机推荐
- 【洛谷P3919】可持久化数组
题目大意:需要维护一个长度为 N 的数组,支持在历史版本上单点修改和单点查询. 题解:显然,如果直接暴力维护的话会 MLE.因此,采用线段树进行维护,使得空间复杂度由 \(O(mn)\) 降至 \(O ...
- JAVA:当数据库重启后连接池没有自动识别的解决办法
今天发现服务器上的一个服务程序出现问题,软件抛出:Connection reset by peer: socket write error 无法正常提供服务,找了一下原因,原来是因为数据库服务器重启, ...
- 简单认识python(一)
最近本宝宝被一部小说迷的神魂颠倒的,在网络上四处找免费的小说资源,一直哭唧唧的等待着每天更新的一章.实在是太可怜了,本宝宝决定自己学python,自己抓包小说. 既然知道目的地了,那就和本宝宝一起打怪 ...
- 蛋白质结构模型和功能预测:I-TASSER工具的使用
I-TASSER是一款用于预测蛋白质结构和功能的工具,网站链接:https://zhanglab.ccmb.med.umich.edu/I-TASSER/ 具体描述如下: I-TASSER (Iter ...
- JSP+MySQL中文乱码
问题:JSP页面传输到MySQL数据库时,中文为乱码(数据库中存储乱码). 解决办法: 1.将所有的涉及到编码的都设置为 utf8(utf-8). 设置数据库编码:命令行执行:mysql> sh ...
- HTML:<input type="text">文本框不可编辑的方式
1.<input type="text" name="name" value="姓名" disabled /> 该方式显示的文本 ...
- (stripTrailingZeros)A == B hdu2054
A == B ? 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2054 Problem Description Give you two numbers ...
- maven自动打包上传nexus仓库配置
一个基础类,可能要升级并放到私服库里,为了方便,应该能够自动打包放到nexus.这就需要配置maven一些参数与pom.xml. 依次在settings.xml文件裡輸入 <!-- nexus帳 ...
- GO语言的进阶之路-流程控制
GO语言的进阶之路-流程控制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑.流程控制 ...
- Linux发行版Debian操作系统破译密码
Linux发行版Debian操作系统破译密码 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实玩过Linux的小伙伴,对破解服务器密码都应该有所了解,典型的两个代表,我觉得一个是 ...