当前位置: 首页 > news >正文

输入一个整型数组,求所有子数组中和的最大值

/**
 * 输入一个整型数组,数组里有正数也有负数。
 * 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
 * 求所有子数组的和的最大值。要求时间复杂度为O(n)。
 * 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,
 * 因此输出为该子数组的和18。
 * 最简单的办法就是穷尽所有的子数组,计算他们的和,然后比较
 * 


int maxSum(int arr[]){
	int maximum = arr[0];
	int sum=0;
	for(int i = 0; i < arr.length; i++){ 
		for(int j = i; j < arr.length; j++) { 
			for(int k = i; k <= j; k++) { 
				sum += A[k];
			} 
			if(sum > maximum)
				maximum = sum; sum=0;
		} 
	} 
	return maximum;
}  */
public class MaxSum {
	/** * *依次遍历数组中的元素,把它们相加,如果加起来b
	 * <0, *把b重新赋值,置为下一个元素,b=a[i]。
	 *  *当b>sum,则更新sum=b; *若b<sum,则sum保持原值,不更新 */
	public static int maxSum(int arr[]){
		int sum = arr[0];
		int b = 0;
		for(int i = 0;i<arr.length;i++){
			if(b<=0)
				b=arr[i];
			else
				b+=arr[i];
			if(b>sum)sum=b;
		}
		return sum;
	}
	public static void main(String[] args) {
		//int arr[]={1,-2,3,10,-4,7,2,-5};
		int arr[]={-1,-2,-3,-10,-4,-7,-2,-5};
		int result = maxSum(arr);
		System.out.println(result);
	} 
}


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 软件测试知识之分类
  • 算法导论学习笔记——贪心算法
  • web前端开发浏览器兼容性处理大全
  • 算法导论学习笔记——动态规划
  • Google技术学习
  • 【无聊放个模板系列】 半平面交
  • 最长公共子序列(LCS)问题
  • 01背包问题
  • JS控制文本框只能输入中文、英文、数字与指定特殊符号.
  • iOS僵尸对象之研究
  • 在一个大数组中有且仅有两个数相同,怎样尽快找出这两个数(未完成)
  • 字符串匹配算法
  • CXF:根据werservice代码生成WSDL(转)
  • 位运算的应用和实例
  • 深入理解css3中 nth-child 和 nth-of-type 的区别
  • 【5+】跨webview多页面 触发事件(二)
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Next.js之基础概念(二)
  • python学习笔记-类对象的信息
  • ReactNative开发常用的三方模块
  • SQLServer之索引简介
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 测试开发系类之接口自动化测试
  • 警报:线上事故之CountDownLatch的威力
  • 面试遇到的一些题
  • 移动端 h5开发相关内容总结(三)
  • 移动端解决方案学习记录
  • #Linux(make工具和makefile文件以及makefile语法)
  • #pragma once与条件编译
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (floyd+补集) poj 3275
  • (LeetCode) T14. Longest Common Prefix
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)scrum常见工具列表
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .NET Core 2.1路线图
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net 后台导出excel ,word
  • .Net 路由处理厉害了
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net快速开发框架源码分享
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @Autowired自动装配
  • @JoinTable会自动删除关联表的数据
  • @test注解_Spring 自定义注解你了解过吗?
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝