給出一個由[-100,100]之間整陣列成的陣列,求其相加和最大的連續子陣列 輸入 一個連續整陣列成的陣列 輸出 子陣列相加的最大值 樣例輸入 -......
給出一個由[-100,100]之間整陣列成的陣列,求其相加和最大的連續子陣列
解題:時間複雜度為O(N),也能解決最大子序列和為負數的情況
輸入
一個連續整陣列成的陣列
輸出
子陣列相加的最大值
樣例輸入
-1 2 3 -2 4 -6
樣例輸出
7
python版本:
import math
print("陣列")
x=input()
x=[-1,-2,-3,-2,-4,-6]
x=x.split(" ")
x = [int(x[i]) for i in range(len(x))]
sum=0
max_x=x[0]
for i in range(len(x)):
sum += x[i]
if (sum > max_x):
max_x = sum
if (sum < 0):
sum = 0
//如果最大子序列是負數,則取序列裡面最大的數即可
if(sum==0):
max_x=max(x)
print(max_x)
c++版本:
由於輸入原因,所以時間有點長
#include <iostream>
#include <stdio.h>
#include<stdlib.h>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<int> arr;
int i = 0;
int n=0;
do{
cin >> i;
n++;
arr.push_back(i);
}while(getchar() !='\n');
// int arr[6]= {-1,2,3,-2,4,-6};
int max = arr[0];
for(int i = 0, sum = 0; i < n; ++i)
{
sum += arr[i];
if (sum > max)
max = sum;
if (sum < 0)
sum = 0;
}
printf("%d",max);
system("pause");
return 0;
}
相關文章
- 輸入一個整數陣列,輸出奇偶數相間排列的陣列陣列
- 連續子陣列的最大和陣列
- 最大連續子陣列和的實現陣列
- 【淺出 PHP】陣列相加和陣列合並的區別PHP陣列
- 每日一練(22):連續子陣列的最大和陣列
- 給定一個整數陣列,找出總和最大的連續數列,並返回總和。陣列
- 最大連續子陣列和(最大子段和)陣列
- JZ-030-連續子陣列的最大和陣列
- 雙指標查詢陣列的連續規律子陣列問題指標陣列
- 最短無序連續子陣列陣列
- 牛客題霸--連續子陣列的最大和陣列
- python輸入詳解(陣列、矩陣)Python陣列矩陣
- 劍指offer-例題 連續子陣列的最大和陣列
- 【陣列】1550. 存在連續三個奇數的陣列(簡單)陣列
- 《劍指Offer》- 連續子陣列的最大和或最小和陣列
- 劍指office--31. 連續子陣列的最大和陣列
- 劍指Offer-連續子陣列中的最大和陣列
- 劍指 Offer 42.連續子陣列的最大和陣列
- leetcode最短無序連續子陣列LeetCode陣列
- [每日一題] 第十五題:連續子陣列的最大和每日一題陣列
- 逗號分隔,輸出陣列陣列
- 最大連續子陣列和求解問題(C語言)陣列C語言
- C++陣列的連續性C++陣列
- 陣列中每個陣列元素出現的次數陣列
- lc3041 修改陣列後最大化陣列中的連續元素數目陣列
- Leetcode 陣列中和為給定值的最長子陣列LeetCode陣列
- python之矩陣相加:提示使用者輸入矩陣的行數n,再提示使用者輸入矩陣的列數m,接下來,提示使用者輸入 2*n*m 個數字(每次輸入 一個數字)。輸出 C=A+B。Python矩陣
- [求解]陣列,分成倆個陣列,陣列值之和的相差最小。陣列
- Javascript - 陣列和陣列的方法JavaScript陣列
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 物件陣列 根據key 把一樣的push到一個陣列物件陣列
- 陣列[簡單]1550. 存在連續三個奇數的陣列2020/11/14(6)陣列
- C/C++ 讀入一個整型陣列,陣列大小未知C++陣列
- 求二維陣列中最大子陣列的和陣列
- 第四章:多維陣列和矩陣 ------------- 4.7 子陣列最大累加和陣列矩陣
- 和為 K 的子陣列陣列
- 陣列--移除陣列中指定的元素,不改變原陣列和改變原陣列陣列
- 給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。陣列