剑指offer:(31)时间效率 :连续子数组最大和
来源:互联网 发布:甜虾 知乎 编辑:程序博客网 时间:2024/06/08 16:40
package jianzhioffer;public class Solution31 {//动态规划:就是将中间值保存下来public static int FindGreatestSumOfSubArray(int[] array) {if (array == null || array.length <= 0)return 0;int maxSum = array[0];//注意初始值 不能设为0 防止只有负数int tempSum = array[0];for (int i = 1; i < array.length; i++) {if (tempSum <= 0) {tempSum = array[i];} else {tempSum += array[i];}if (tempSum > maxSum) {maxSum = tempSum;}}return maxSum;}public static void main(String[] args) {int[] array = { -2, -8, -1, -5, -9 };System.out.println(FindGreatestSumOfSubArray(array));}}
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度至少是1)
思路:动态规划,将中间值存下来
设定两个变量一个存最大和:maxSum
一个存临时和(可能成为最大和),tempSum
都初始化为数组的第一个值,以防全是负数
阅读全文
0 0
- 剑指offer-5-面试31:连续子数组的最大和(时间效率)
- 剑指offer:(31)时间效率 :连续子数组最大和
- 【剑指offer】5.2时间效率——面试题31:连续子数组的最大和
- 剑指offer 31题 【时间效率】连续子数组的最大和
- 《剑指offer》刷题笔记(时间效率):连续子数组的最大和
- [剑指offer]连续子数组最大和
- 剑指offer-最大连续子数组和
- 剑指offer:连续子数组最大和
- 剑指offer---连续子数组最大和
- 【剑指offer】连续子数组最大和
- 剑指offer:31-连续子数组的最大和
- 剑指offer-31:连续子数组的最大和
- 剑指offer 31 - 连续子数组的最大和
- 剑指Offer-31-连续子数组的最大和
- 剑指offer-31连续子数组最大和
- 剑指offer--31连续子数组最大和
- 剑指offer-31:连续子数组的最大和
- 剑指offer 31 连续子数组的最大和
- JZOJ __Day 3:【NOIP普及模拟】求和(sum)
- mysql源码编译完成之后的操作
- JAVA中堆栈和内存分配原理
- 布满障碍物的矩阵中连接两点所需的最小直线数目
- Leetcode 221. Maximal Square
- 剑指offer:(31)时间效率 :连续子数组最大和
- python初接触
- ubuntu下的jdk+eclipse安装
- [LeetCode] 143. Reorder List
- java 字符流相关的io操作原理分析
- 蓝桥杯_法训练—操作格子(线段树点更新与区间查询)
- PHP 5.3.0以上推荐使用mysqlnd驱动
- cocos 3.10 ccui.RichText修改计算行宽的计算方法
- tensorflow/tf.set_random_seed()