325 和等於 k 的最長子陣列長度

2021-10-24 11:33:23 字數 739 閱讀 7757

題目描述:

給定乙個陣列 nums 和乙個目標值 k,找到和等於 k 的最長子陣列長度。如果不存在任意乙個符合要求的子陣列,則返回 0。

注意:

nums 陣列的總和是一定在 32 位有符號整數範圍之內的。

示例 1:

輸入: nums = [1, -1, 5, -2, 3], k = 3

輸出: 4

解釋: 子陣列 [1, -1, 5, -2] 和等於 3,且長度最長。

示例 2:

輸入: nums = [-2, -1, 2, 1], k = 1

輸出: 2

解釋: 子陣列 [-1, 2] 和等於 1,且長度最長。

高階:

你能使時間複雜度在 o(n) 內完成此題嗎?

方法1:

主要思路:

(1)使用字首和,然後以 k 作為間隔,去找前面是否出現過對應的和即可;

class

solution

//當前和是否存在,若不存在,則新增,若存在,則跳過,因為之前新增的索引一定更小if(

!mp.

count

(sum_sub))}

return max_len;}}

;

LeetCode 和等於 k 的最長子陣列長度

q 給定乙個陣列 nums 和乙個目標值 k,找到和等於 k 的最長子陣列長度。如果不存在任意乙個符合要求的子陣列,則返回 0。注意 nums 陣列的總和是一定在 32 位有符號整數範圍之內的。示例 1 輸入 nums 1,1,5,2,3 k 3 輸出 4 解釋 子陣列 1,1,5,2 和等於 3,...

給定值k的最長子陣列長度

1 給定乙個陣列,值全是正數,請返回累加和為給定值k的最長子陣列長度。2 給定乙個陣列,值可以為正 負和0,請返回累加和為給定值k的最長子陣列長度。1 l和r都只能往右滑動,不會回退 初始化 l r 0 如果視窗內 l,r 的和小於k,r sum num r 如果和等於k,記錄視窗大小並視情況更新返...

和為aim的最長子陣列長度

求在給定的陣列中,子陣列中所有數加起來的和等於固定值 aim 的最長子陣列長度。準備乙個字典,key是從 1 位置到當前位置的累加和,value 是第一次得到這個累加和的位置。預設 1 位置的累加和是0.從頭開始遍歷陣列,每次都計算從 1 位置到當前位置的累加和是多少,並將位置資訊和 累加和存到字典...