未排序正數陣列中累加和為給定值的最長子陣列的長度

2021-10-10 02:44:51 字數 1052 閱讀 5780

未排序正數陣列中累加和為給定值的最長子陣列的長度

給定乙個陣列arr,該陣列無序,但每個值均為正數,再給定乙個正數k。求arr的所有子陣列中所有元素相加和為k的最長子陣列的長度

例如,arr = [1, 2, 1, 1, 1], k = 3

累加和為3的最長子陣列為[1, 1, 1],所以結果返回3

[要求]

時間複雜度為o(n

)o(n)

o(n)

,空間複雜度為o(1

)o(1)

o(1)

輸入描述:

第一行兩個整數n, k。n表示陣列長度,k的定義已在題目描述中給出

第二行n個整數表示陣列內的數

輸出描述:

輸出乙個整數表示答案

示例1輸入

5 3

1 2 1 1 1

輸出
3
備註:

1 ≤n

≤105

1 \leq n \leq 10^5

1≤n≤1051≤

k≤10

91 \leq k \leq 10^9

1≤k≤1091≤

arri

≤100

1 \leq arr_i \leq 100

1≤arri

​≤10

0 題解:雙指標。使用 left 和 right 兩個指標表示子陣列的左右位置,sum 表示子陣列的和。分以下幾種情況:

**:

#include

#include

using

namespace std;

const

int n =

100000

;int n, k;

int a[n]

;int

main

(void

)else

}return0*

printf

("%d\n"

, len)

;}

未排序陣列中累加和為給定值的最長子陣列系列問題

牛客網左程雲第二課第三題,這是乙個很重要的演算法原型。問題 給定乙個無序陣列 arr,其中元素可正 可負 可 0,給定乙個整數 k。求 arr 所有的子陣列中累加和為 k 的最長子陣列長度。要求 時間複雜度 o n 分析 本題和未排序正數陣列中累加和為給定值的最長子陣列長度這個問題的區別在於,陣列中...

未排序陣列中累加和為給定值的最長子陣列系列問題

題目 給定乙個無序陣列arr,其中元素可正 可負 可0,給定乙個整數k。求arr中所有的子陣列中累加和為k的最長子陣列長度。補充題目 給定乙個無序陣列arr,其中元素可正 可負 可0,給定乙個整數k。求arr中所有的子陣列中正數與負數個數相等的最長子陣列長度。補充題目 給定乙個無序陣列arr,其中元...

未排序陣列中累加和小於或等於給定值的最長子陣列長度

來自牛客網左程雲第二課第四題 問題 給定乙個無序陣列 arr,其中元素可正 可負 可 0,給定乙個整數 k。求 arr 所有的子陣列中累加和小於或等於 k 的最長子陣列長度。例如 arr 3,2,4,0,6 k 2,相加和小於或等於 2 的最長子陣列為 所以結果返回 4。要求 時間複雜度 n log...