题解 | #和为K的连续子数组#
和为K的连续子数组
https://www.nowcoder.com/practice/704c8388a82e42e58b7f5751ec943a11
//test
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* max length of the subarray sum = k
* @param arr int整型vector the array
* @param k int整型 target
* @return int整型
*/
int maxlenEqualK(vector<int>& arr, int k)
{
// write code here
vector<int> top_sum;
int num = arr.size(),sum =0;
for(int i =0;i<=num;i++)
{
top_sum.push_back(sum);
sum+=arr[i];
}
for(int i =0;i<=num;i++)
{
for(int j = 0;j<=i;j++)
{
if(top_sum[num-i+j]-top_sum[j]==k)
return num-i;
}
}
return 0;
}
};
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* max length of the subarray sum = k
* @param arr int整型vector the array
* @param k int整型 target
* @return int整型
*/
int maxlenEqualK(vector<int>& arr, int k)
{
// write code here
vector<int> top_sum;
int num = arr.size(),sum =0;
for(int i =0;i<=num;i++)
{
top_sum.push_back(sum);
sum+=arr[i];
}
for(int i =0;i<=num;i++)
{
for(int j = 0;j<=i;j++)
{
if(top_sum[num-i+j]-top_sum[j]==k)
return num-i;
}
}
return 0;
}
};