【连续】子数组之和最大并得到子数组的下标边界

这篇博客探讨了如何在Java中通过算法解决寻找连续子数组,使得其和最大的问题,并提供了详细的过程和实现代码,同时应用了分治策略进行优化。
摘要由CSDN通过智能技术生成
    此博客的目的仅供个人学习和分享,其实也是为了自己复习知识方便,这也是本人第一次写博客,缺乏经验,见谅见谅!该文章主要是为了求【连续】子数组之和最大并得到子数组的下标边界,使用的算法采用的是分治的思想,分治算法的思想是将一个比较复杂的问题,分解为K个规模比较小的问题,如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思,想这些子问题相互独立且与原问题相同,递归解决这些子问题,就可以得到原问题的解。至于这个K是多大,一般根据情况而定,类似于插入排序的算法中一般这个K为N%2,因为一旦一个问题的元素个数为2个时,我们就能很快分出大小,但此文中这个K值并不为2,它的复杂度为N*O(logN)+N。另外欢迎大家指出不足之处!

package cn.book.exercise;



import java.util.HashMap;
import java.util.Map;


/**
 * @author Administrator
 * 寻找最适应的算法,【连续】子数组之和最大
 */
public class FindBestSubArrayTest {
public static int[] array ={-1,2,3,4,5,6,-7,8,9,33,-888888,-99999,333333,-1,-2,9};
static Map<String, Integer> map = new HashMap<String, Integer>();

public static void main(String[] args)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值