假定有陣列arr[4]=, 求出陣列中子陣列中等於12的最大長度。
建立乙個hash表,其key等於陣列中遍歷過的數的和,其value等於當前遍歷的數在陣列中的下標。用sum儲存遍歷過的數的總和,len儲存最大長度;依次從陣列的開頭遍歷,如果sum-k的值在hash表中有記錄,則len更新為i-map[sum-k]和len的較大值,如果不存在就將加入map中,以便下次查詢。
**如下:
#include
#include
#include
using
namespace
std;
int maxlength(int* arr,int n,int k));
int len=0;
int sum=0;
for(int i=0;iif(m.find(sum-k)!=m.end())
else);}}
return len;
}int main()
; cout
<5,12)<}
查詢陣列中子陣列最大和
宣告 以下題目 網路 題目 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的 最大值。要求時間複雜度為o n 2013 04 16 include includeint maxsubarray int data,int siz...
陣列中子陣列的最大累乘積
陣列中子陣列的最大累乘積 給定乙個double型別的陣列arr,其中的元素可正 可負 可0,返回子陣列累乘的最大乘積。例如,arr 2.5,4,0,3,0.5,8,1 子陣列 3,0.5,8 累乘可以獲得最大的乘積12,所以返回12 要求 時間複雜度為o n o n o n 空間複雜度為o 1 o ...
325 和等於 k 的最長子陣列長度
題目描述 給定乙個陣列 nums 和乙個目標值 k,找到和等於 k 的最長子陣列長度。如果不存在任意乙個符合要求的子陣列,則返回 0。注意 nums 陣列的總和是一定在 32 位有符號整數範圍之內的。示例 1 輸入 nums 1,1,5,2,3 k 3 輸出 4 解釋 子陣列 1,1,5,2 和等於...