给定任意数组获取任意连续的项求和的最大值,并输出新的数组
来源:互联网 发布:如何获取阿里云优惠码 编辑:程序博客网 时间:2024/05/24 03:29
今天看到一个京东的java数组面试题,原题如下:
给定一个数组 int[] num = {-1,2,7,-9,3,6,8,2,-10};【数组不是固定的,是任意数组这只是个例子】
要求:
将数组中任意连续的项求和的最大值,并输出新的数组。
举例:3+6+8+2 = 19,在没有任何连续的想加大于19,所以输出 [3,6,8,2],最大和:19 。
请用Java输出。
public static String FindGreatestSumOfSubArray(int[] array) { if (array.length==0 || array==null) { return "数组不能为空"; } int currentSum = 0; //存储当前连续n项的和 int max = 0; //存储连续子元素和的最大值 int end = 0 ; //结束下标 int stats = 0; //起始下标 for (int i = 0; i < array.length; i++) { //核心部分,好好理解. if(currentSum<=0){ //如过当前连续n项的和小于等于0,则没必要与后面的元素相加 currentSum = array[i]; //currentSum重新赋值 }else{ currentSum += array[i]; //如果currentSum的值大于0,则继续与后面的元素相加, } if(currentSum>max){ //每次改变currentSum的值都有与max进行比较 max = currentSum; //如果currentSum的值大于max,则将currentSum的值赋值给max end = i; } } //临时变量对比最大总和使用 int temp = 0; for (int i=end; i>=0; --i) { temp+=array[i]; if (temp == max) { stats = i; } } return max+","+stats+","+end; } public static void main(String[] args) { int[] array = {6,-3,-2,7,-15,1,2,2}; String result = FindGreatestSumOfSubArray(array); String[] split = result.split(","); System.out.println(String.format("最大合%s,开始下标%s,结束下标%s",split[0],split[1],split[2])); }
欢迎大家互相分享
阅读全文
0 0
- 给定任意数组获取任意连续的项求和的最大值,并输出新的数组
- 求数组中任意连续位置元素和的最大值
- 利用委托求任意数组的最大值
- 计算一串连续数组的之间 连续几个数(任意连续)之和的最大值 Microsoft Visual Studio
- 任意数组的输入
- 数组中取出下标不连续的任意个数,求取出的数的和的最大值
- 数组中取出下标不连续的任意个数,求取出的数的和的最大值
- 关于任意数字类型的数组求最大值解决办法
- 合并任意个数组生成一个新的数组
- 连续数组和的最大值
- poj2479-在一个数组中求任意不相交的两个子数组之和的最大值
- 使用指针输出二维数组的任意元素
- java__给定一个升序排列的数组,去掉重复的数,并输出新的数组的长度
- python任意多个整数,并输出其中最大值 最小值以及它们的和
- 找出给定数数组里连续的元素和的最大值
- 输出一个数组的最大值
- 找到数组中每项的最大值并返回一个新的数组
- 在排序数组中找给定数字出现的次数和任意整数有几种分解方法
- Qt5自动拷贝动态链接库文件(.dll)的方法
- [BZOJ4530]-大融合-LCT维护子树信息
- 321321321
- 关于sort函数的几种用法
- 防止vc6.0运行代码后闪退
- 给定任意数组获取任意连续的项求和的最大值,并输出新的数组
- 用Python建设企业认证和权限控制平台
- 数据结构实验之查找三:树的种类统计
- OSX上进行JNI开发的流程及命令
- caffe转换tensorflow工具caffe-tensorflow
- 第四章 ALDS1_3_A:Stack 栈
- svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法
- 12月23日 周六
- SpringBoot第一个示例