1. 程式人生 > >一個數組 裡面正數和負數求所有子陣列的最大值

一個數組 裡面正數和負數求所有子陣列的最大值

#include <iostream>  
using namespace std;
int maxSum(int* a, int n)
{
int sum = 0;
//其實要處理全是負數的情況,很簡單,如稍後下面第3點所見,直接把這句改成:"int sum=a[0]"即可  
//也可以不改,當全是負數的情況,直接返回0,也不見得不行。  
int b = 0;


for (int i = 0; i<n; i++)
{
if (b<0)           //...  
b = a[i];
else
b += a[i];
if (sum<b)
sum = b;
}
return sum;
}


int main()
{
int a[10] = { 1, -2, 3, 10, -4, 7, 2, -5 };
//int a[]={-1,-2,-3,-4};  //測試全是負數的用例  
cout << maxSum(a, 8) << endl;
return 0;
}

相關推薦

個數 裡面正數負數所有陣列

#include <iostream>   using namespace std; int maxSum(int* a, int n) {int sum = 0;//其實要處理全是負數的情況,很簡單,如稍後下面第3點所見,直接把這句改成:"int sum=a[

一個整形陣列中有正數也有負數陣列中連續一個或多個組成陣列,每個子陣列都有一個所有陣列中和的

本文只作為學習筆記,如若侵權請告知,一定及時刪除 題目 輸入一個整型陣列,數組裡有正數也有負數。陣列中一個或者連續的多個整陣列成一個字陣列。求所有字陣列的和的最大值。要求時間複雜度為O(n)。例

動態規劃--目標值問題、找零錢問題以及連續陣列 --java

1、動態規劃一般可分為線性動規,區域動規,樹形動規,揹包動規四類。 舉例: 線性動規:攔截導彈,合唱隊形,挖地雷,建學校,劍客決鬥等; 區域動規:石子合併, 加分二叉樹,統計單詞個數,炮兵佈陣等; 樹形動規:貪吃的九頭龍,二分查詢樹,聚會的歡樂,數字三角形等;

python實現連續陣列

問題描述:例如:[6,-3,-2,7,-15,1,2,2]求連續子陣列中的最大和,此陣列中最大和為8,從arr[0]到arr[3]。其餘位置都比這個要小。最大連續子陣列的特點:(1)第一個不為負數(2)如果前面數的累加加上當前數小於當前數,說明這次累加對總體的結果是無效的;如

ORACLE 內建函式之 GREATEST LEAST(多列的,)

轉載自:http://dlblog.iteye.com/blog/1274005 Oracle比較一列的最大值或者最小值,我們會不假思索地用MAX和MIN函式,但是對於比較一行的最大值或最小值呢?是不是日常用的少,很多人都不知道有ORACLE也有內建函式實現這個功能:COALESCE / GREATES

php將檔案每一行讀到個數裡面

我現在需要把一個txt的檔案,讀到一個數組,最快的方法: $texts = file($filepath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

個數裡連續陣列的幾個演算法

注意:這裡的陣列元素,有可能全為負。這樣,所謂的: int find_max_array(const vector<int> &a) { int max_sum = 0; int this_sum = 0; fo

c語言把個數裡面的部分值直接複製到另外個數

標頭檔案是#include <string.h>,如果要從陣列a複製k個元素到陣列b,可以這樣做memcpy(b,a,sizeof(int)*k);#include <stdio.h> #i

js數組合並(個數新增到另個數裡面)方法

js定義兩個陣列。var arrA=[1,2,3];var arrB=[4,5,6];要實現[1,2,3,4,5,6],如果直接arrA.push(arrB); 則arrB只會作為了arrA的一個元素。執行如圖:要合併或連線,則需要使用concat() 方法。concat(Array) 方法concat()

輸入一個正整數陣列,把數所有數字拼接起來排成個數, 列印能拼接出的所有數字的小的一個。例如輸入{3,32,321,4},則列印小的數字是 3213234

public class FandMax { public void makeMax(int[] nums){ boolean flag=true; for (int i = 0; i < nums.length; i++) { for (int j = 0; j <

php從個數中刪除多個元素,獲取陣列對等……

$array1 = array(1,2,3,4,5,6); $array2 = array(2,3); //1、獲取陣列鍵值對 $arr1 = array_keys($array2); var_dump($arr1); Array ( [0] => 0 [1] =&g

前端演算法:給定個數,寫一個函式將所有0的移動到它的末尾,同時保持非零元素的相對順序(移動零)

給定一個數組nums,寫一個函式將所有0的移動到它的末尾,同時保持非零元素的相對順序。 例: 輸入: [0,1,0,3,12] 輸出: [1,3,12,0,0] 注意: 您必須在不製作陣列副本的情況下就地執行此操作。 最小化操作總數。 <script>

個數中找到連續的陣列的乘積

例如輸入[2,3,-2,4]​ 符合條件的子陣列應該是[2,3],他們的乘積是6 /** * @Author jiangfq * */ package com.test; /** * @author jiangfq * */ public clas

【演算法之陣列)】陣列的解決方法詳解

題目: 輸入一個整形陣列,數組裡有正數也有負數。 陣列中連續的一個或多個整陣列成一個子陣列,每個子陣列都有一個和。 求所有子陣列的和的最大值。 例如輸入的陣列為1, -2, 3, 10, -4, 7, 2, -5,和最大的子陣列為3, 10, -4, 7, 2, 因此

Java程式設計:定義一個int型的陣列,包含10個元素,分別賦一些隨機整數,然後所有元素的,平均值,,並輸出出來。

public class Program1 {/**1.定義一個int型的一維陣列,包含10個元素,分別賦一些隨機整數,然後求出所有元素的最大值,最小值,平均值,和值,並輸出出來。*/public static void main(String[] args) { int[

【Java】【演算法練習】輸入一個正整數陣列,把數所有數字拼接起來排成一個數,列印能拼接出的所有數字中小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的小數字為321323。

題目描述:         輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列 {3,32,321},則打印出這三個數字能排成的最小數字為321323。 解題思路:        解題思路: 比較兩個字串s1 S2的

輸入一個正整數數,把數所有數字拼接起來排成個數。打印能拼接出所有數字中小的一個

style void ole min 一個數 string right public [] 題目: 輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數。打印能拼接出所有數字中最小的一個。 解答: 1 public class Solution { 2 3

個數中包含物件,物件中包含陣列

一死胖子問的,留在這裡。 <?php $arr = array(); $XSDocument = new XSDocument(); $data = array(); $data['id'] = '1'; $data['title'] = "死胖子";

陣列陣列(Maximum Subarray )

來源:https://leetcode.com/problems/maximum-subarray/#/descriptionFind the contiguous subarray within an array (containing at least one numb

Python演算法與資料結構--所有陣列

Python演算法與資料結構–求所有子陣列的和的最大值 玄魂工作室-玄魂 玄魂工作室祕書 玄魂工作室 昨天 題目:輸入一個整形陣列,數組裡有正數也有負數。陣列中連續的一個或多個整陣列成一個子陣列,每個子陣列都有一個和。 求所有子陣列的和的最大值。要求時間