zoukankan      html  css  js  c++  java
  • leetcode97:maximum -subarray

    题目描述

    请计算给出的数组(至少含有一个数字)中具有最大和的子数组(子数组要求在原数组中连续)
    例如:给出的数组为[−2,1,−3,4,−1,2,1,−5,4],
    子数组[−2,1,−3,4,−1,2,1,−5,4],具有最大的和:6.
    拓展:
    如果你已经提出了O(n)的解决方法,请尝试使用分治算法来解决这道题。这道题分治的解法更巧妙一些。

    Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

    For example, given the array[−2,1,−3,4,−1,2,1,−5,4],
    the contiguous subarray[4,−1,2,1]has the largest sum =6.

    More practice:

    If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

    示例1

    输入

    复制
    [1]

    输出

    复制
    1
    
    示例2

    输入

    复制
    [-2,1,-3,4,-1,2,1,-5,4]

    输出

    复制
    6
    class Solution {
    public:
        /**
         *
         * @param A int整型一维数组
         * @param n int A数组长度
         * @return int整型
         */
        int maxSubArray(int* A, int n) {
            // write code here
            int sum=A[0],maxSum=A[0];
            for (int i=1;i<n;i++){
                if (sum<0)
                    sum=0;
                sum+=A[i];
                maxSum=max(maxSum,sum);
            }
            return maxSum;
        }
    };


  • 相关阅读:
    Cisco静态路由
    VTP
    trunk
    vim中文乱码
    Ubuntu 切换root用户是时出现su Authentication failure
    github 换行符自动转换功能
    Qt弹出消息对话框
    串口发送Hex数组
    Qt 按顺序保存多个文件
    Qt乱码解决办法(常量中有换行符)
  • 原文地址:https://www.cnblogs.com/hrnn/p/13425800.html
Copyright © 2011-2022 走看看