面试题31: 连续子数组的最大和
来源:互联网 发布:光环大数据怎么样 编辑:程序博客网 时间:2024/05/16 15:45
一. 题目
输入一个整型数组,数组里有正数也有负数.数组中一个或连续的多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n).
代码请到我的代码库中下载 Point2Offer
二. 代码
package week_3;/**难度系数:*** * 剑指offer: 连续子数组的最大和 * 方法:利用当前累加子数组和最大值or动态规划(未实践) * 测试用例:功能测试(全正数组,全负,有正有负,为空) * @author dingding * Date:2017-6-28 10:45 * Declaration: All Rights Reserved! */public class No31 { private static boolean isvalid = true; //是否有效 public static void main(String[] args) { test1(); test2(); test3(); test4(); } private static int findMaxSumOfSubArray(int[] data,int length){ if (data == null || length<1) { isvalid = false; return 0; } isvalid = true; //以便下一次调用 int addToNSum = 0; int nMaxSum = 0x80000000; //最小数 for (int i=0;i<length;i++){ if (addToNSum<=0) { //这一步很巧妙 addToNSum = data[i]; }else{ addToNSum +=data[i]; } if (addToNSum > nMaxSum) { nMaxSum = addToNSum; } } return nMaxSum; } /*====================测试用例=================*/ private static void test(int[] data,int length){ int result = findMaxSumOfSubArray(data, length); if (!isvalid && result == 0) { System.out.println("invalid input."); }else { System.out.println("连续最大子数组和为: "+result); } } private static void test1() { int[] data = {1,-2,3,10,-4,7,2,-5}; test(data, data.length); } private static void test2() { int[] data = {1,2,3,4,5}; test(data, data.length); } private static void test3() { int[] data = {-1,-4,-3,-5}; test(data, data.length); } private static void test4() { int[] data = {}; test(data, data.length); }}
有不妥当之处,麻烦告知:D
阅读全文
0 0
- 面试题31:连续子数组的最大和
- 面试题31:连续子数组的最大和
- 连续子数组的最大和(面试题 31)
- 面试题31 连续子数组的最大和
- 面试题31:连续子数组最大的和
- 面试题31:连续子数组的最大和
- 面试题31:连续子数组的最大和
- 面试题31:连续子数组的最大和
- 面试题31:连续子数组的最大和(java)
- 面试题31:连续子数组的最大和
- 面试题31 连续子数组的最大和
- 面试题31:连续子数组的最大和
- 面试题31:连续子数组的最大和(java)
- 面试题31:连续子数组的最大和
- 面试题31:连续子数组的最大和
- 面试题31连续子数组的最大和
- 面试题31—连续子数组的最大和
- 面试题31:连续子数组的最大和
- 编译原理(二) NFA的确定化及DFA的最小化的算法及C++实现
- springmvc执行流程
- bugku杂项几题writeup
- 动态规划训练专题
- BZOJ1008 (HNOI2008)[越狱]--组合数学
- 面试题31: 连续子数组的最大和
- 使用netstat调试TCP应用
- 编译原理(三) 消除文法的左递归
- 【BZOJ】1098 [POI2007]办公楼biu 链表+BFS
- 外观模式案例
- 深入理解Cache
- 去哪儿-二分查找-Java
- c#方法-分方法
- 编译原理(四) 提取左因子法消除回溯