剑指offer 面试题31 连续子数组的最大和
来源:互联网 发布:php include() 编辑:程序博客网 时间:2024/05/21 23:33
剑指offer 面试题31 连续子数组的最大和
题目:
输入一个整型数组,数组里有正数也有负数。数组中一个或者连续的多个整数组成一个子数组。
所有子数组的和的最大值。要求时间复杂度是 O(n)。
package algorithm.foroffer.top40;import java.util.Arrays;/** * Created by liyazhou on 2017/5/29. * 面试题31:连续子数组的最大和 * * 题目: * 输入一个整型数组,数组里有正数也有负数。数组中一个或者连续的多个整数组成一个子数组。 * 求所有子数组的和的最大值。要求时间复杂度是 O(n)。 * * 考查点: * 1. 动态规划 * 函数 f(i) 表示以第 i 个数字结尾的子数组的最大和 * * 思路: * 1. 连续子数组的最大和 maxSum 的初始值是数组的首元素, * 当前元素之前的资产 currSum 的初始值是数组的首元素 * 2. 遍历[1,n)区间的数组元素, * 如果资产 currSum 小于0,是负资产,抛弃,设置 currSum = 0 * 当前元素之前的资产 currSum 累加当前元素的值,结果为新的资产 * 如果新的资产大于最大资产,则更新最大资源值为新的资产值 */public class Test31 { public static int findMaxSumOfSubArray(int[] array){ if (array == null) throw new RuntimeException("Invalid input. Array is null."); int maxSum = array[0]; int currSum = array[0]; for (int i = 1; i < array.length; i ++){ // 当前元素之前的若干元素的和 currSum, if currSum < 0,表示其是负资产,不参与下一轮的计算 if (currSum < 0) currSum = 0; currSum += array[i]; if (maxSum < currSum) maxSum = currSum; // max = max > currSum ? max : currSum; } return maxSum; } public static void main(String[] args){ int[][] arrays = { {1, -2, 3, 10, -4, 7, 2, -15}, {5, -1, -3, -4, -7, -2, -15}, {-5, 1, -3, -4, -7, -2, -15}, }; for (int i = 0; i < arrays.length; i++){ System.out.print(Arrays.toString(arrays[i]) + ":\t"); System.out.println(findMaxSumOfSubArray(arrays[i])); } }}
阅读全文
0 0
- 《剑指Offer》面试题:连续子数组的最大和
- [剑指offer][面试题31]连续子数组的最大和
- 剑指offer面试题31:连续子数组的最大和
- 剑指Offer:面试题31 连续子数组的最大和
- 剑指offer 面试题31 求连续子数组的最大和
- 《剑指Offer》学习笔记--面试题31:连续子数组的最大和
- 【剑指Offer学习】【面试题31:连续子数组的最大和】
- 剑指Offer面试题31(java版):连续子数组的最大和
- 【剑指offer】5.2时间效率——面试题31:连续子数组的最大和
- 剑指offer代码解析——面试题31连续子数组的最大和
- 剑指offer-面试题31:连续子数组的最大和
- 剑指offer 面试题31:连续子数组的最大和 题解
- 剑指offer之面试题31连续子数组的最大和
- 剑指Offer:面试题31——连续子数组的最大和(java实现)
- 剑指Offer----面试题31:连续子数组的最大和
- 剑指offer面试题31:连续子数组的最大和
- 剑指offer--面试题31:连续子数组的最大和
- 连续子数组的最大和(剑指Offer 面试题31)
- session超时设置
- CodeChef
- Java流程控制和数组
- CMOS图像传感器产业现状-2016版
- [TensorFlow 学习笔记-07]池化函数(Pooling Function)
- 剑指offer 面试题31 连续子数组的最大和
- 3xian之所在【转】
- bzoj1711 [Usaco2007 Open]Dining吃饭 最大流
- 索尼CMOS图像传感器十年奋斗史
- 迷宫最短路径求解(BFS)
- 如何用springcloud找妹纸之3--- 一个行走的"妹纸"(服务提供者)
- P2234 [HNOI2002]营业额统计 Treap
- 动态规划——377. Combination Sum IV[Medium]
- 约瑟夫问题