4 零子陣列

2021-09-10 08:57:14 字數 553 閱讀 3773

題目:

對於長度為n的陣列a,求連續子陣列的和最接近0的值。

如:陣列a:1,-2,3,10,-4,7,2,-5

它是所有子陣列中,和最接近0的是哪個?

演算法流程

申請比a長1的空間sum[-1,0,...,n-1],sum[i]是a的前i項和。定義sum[-1]=0。

顯然有:a的i到j項和=sum(j)-sum(i-1)

對sum[-1,0,...,n-1]排序,然後計算sum相鄰元素的差的絕對值,最小即為所求

在a中任意取兩個字首子陣列的和,求差的最小值。

#include#include#include#include#define n 10

using namespace std;

int result;

int a[n];

int sum[n];

int arraylength;

int minsubarray()

cout<}

最大全零子矩陣

題目描述 在乙個0,1方陣中找出其中最大的全0子矩陣,所謂最大是指0的個數最多。輸入描述 輸入第一行為整數n,其中1 n 2000,為方陣的大小,緊接著n行每行均有n個0或1,相鄰兩數間嚴格用乙個空格隔開。輸出描述 輸出僅一行包含乙個整數表示要求的最大的全零子矩陣中零的個數。樣例輸入 5 0 1 0...

day003 子陣列之和為零

子陣列之和為零 問題描述 給定乙個整數陣列,找到和為零的子陣列,返回滿足要求的子陣列起始位置和結束位置。問題示例 給出 3,1,2,3,4 返回 0,2 或者 1,3 至少有乙個子陣列之和為零。class solution def subarraysum self,nums prefix hash ...

演算法4 求整型陣列的連續子陣列的最大和

輸入乙個整型陣列,陣列裡既有正數也有負數,陣列中連續乙個或者多個組成整型子陣列,每個子陣列都有乙個和,求所有子陣列的最大和,要求時間複雜度為o n 使用貪婪演算法,陣列從開始往後遍歷,記錄最大和,當前和小於0時,當前子陣列和置為0.使用貪婪演算法,遇到sum 0的情況,就將sum置0 void ge...