題目:
對於長度為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...