博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode算法题——返回连续子数组的最大和
阅读量:3958 次
发布时间:2019-05-24

本文共 1064 字,大约阅读时间需要 3 分钟。

题目

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例:
输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

思路

两个map 

    m1储存A-B两端点值
    m2存储A-max 从A出发最大连续数组和值
    在两个for循环内部
    一个count 用来记录连续的数组和值
    一个max记录当期连续数组和值最大值

 

代码实现

public class demo{	public static void max(int[] xx) {				if(xx.length==0) {			System.out.println("数组为空");			return;		}				int max = 0;		int count = 0;				Map
m1 = new HashMap<>(); Map
m2 = new HashMap<>(); for(int i=0;i
=max) { max = count; m1.put(i,j); m2.put(i,count); } } count = 0; } Set
> s2 = m2.entrySet(); boolean flag = true; int max2 = 0; int index = 0; for(Entry
entry:s2) { if(flag==true) { max2 = entry.getValue(); flag = false; } if(max2<=entry.getValue()) { max2 = entry.getValue(); index = entry.getKey(); } } int index2 = m1.get(index); List
list =new ArrayList<>(); for(int i=index;i<=index2;i++) { list.add(xx[i]); } System.out.println(list); } public static void main(String[] args) { int[] xx = {-2,1,-3,4,-1,2,1,-5,4}; max(xx); }}

 

转载地址:http://diazi.baihongyu.com/

你可能感兴趣的文章
python超简单的web服务器
查看>>
代理模式、静态代理、动态代理、aop
查看>>
Struts1.x Spring2.x Hibernate3.x DWR2.x整合工具文档v1.00
查看>>
大型Web2.0站点构建技术初探
查看>>
机器学习算法汇总:人工神经网络、深度学习及其它
查看>>
解决Spring中AOP不能切入Struts的DispatchAction方法的问题
查看>>
出国以后才知道英语应该怎么学
查看>>
计算机专业权威期刊投稿经验总结
查看>>
如何在三个月内学会一门外语?
查看>>
看看你对Linux到底了解多少?
查看>>
网上看到的:ARM入门最好的文章(转)
查看>>
中国最美情诗100句
查看>>
javascript注册window的onload事件问题研究
查看>>
客户端技术分页控件javascript+css,可用于任何服务器端技术
查看>>
学习Swing 的网站[转]
查看>>
Google App engine 的第一个应用 midispot
查看>>
提问的智慧
查看>>
关于dom4j无法解析xmlns问题及生成非UTF-8字符集乱码问题的解决
查看>>
很好的一篇文章 如果让我重做一次研究生 王汎森
查看>>
保护U盘批处理文件
查看>>