problemscpp
A collection of my answers to algorithm problems in c++.
静态 Public 成员函数 | 所有成员列表
leetcode::maximum_size_subarray_sum_equals_k::Solution类 参考

#include <leetcode.h>

静态 Public 成员函数

static int maxSubArrayLen (vector< int > &nums, int k)
 

详细描述

在文件 leetcode.h3404 行定义.

成员函数说明

◆ maxSubArrayLen()

int leetcode::maximum_size_subarray_sum_equals_k::Solution::maxSubArrayLen ( vector< int > &  nums,
int  k 
)
static

在文件 leetcode.cpp9532 行定义.

9532 {
9533 auto pref_sum = vector(nums.size(), 0);
9534 pref_sum[0] = nums[0];
9535 unordered_map<int, set<int>> um;
9536 um[0].insert(-1);
9537 um[nums[0]].insert(0);
9538 for(int i = 1; i < nums.size(); i++) {
9539 pref_sum[i] += nums[i] + pref_sum[i - 1];
9540 um[pref_sum[i]].insert(i);
9541 }
9542 int ans = 0;
9543 for(int i = nums.size() - 1; i >= 0; i--) {
9544 const int r = pref_sum[i];
9545 int l = r - k;
9546 if(!um[l].empty()) {
9547 ans = max(ans, i - *um[l].begin());
9548 }
9549 }
9550 return ans;
9551 }

被这些函数引用 leetcode::maximum_size_subarray_sum_equals_k::TEST().


该类的文档由以下文件生成: