-
二叉树的直径
给定一颗二叉树,计算它的直径长度,直径为任意两个节点距离的最大值
深度优先搜索: -
和为k的子数组
在整数数组nums中统计和为k的连续子数组的个数
暴力法:
哈希表优化法:(哈希表的优势是节省查找元素的时间)
连续和等于两个前n项和相减
class Solution{
public:
int subarraySum(vector<int>& nums, int k){
unordered_map<int, int> mp;
mp[0] = 1; //当找到的前n项和刚好等于k,那么就需要mp【0】
int count = 0, pre = 0;
for(auto& x:nums){
pre += x; //前n项和
if(mp.find(pre - k) != mp.end()) {
count += mp[pre - k];
}
mp[pre]++;
}
return count;
}
};