其他分享
首页 > 其他分享> > 热题100 543|560

热题100 543|560

作者:互联网

  1. 二叉树的直径
    给定一颗二叉树,计算它的直径长度,直径为任意两个节点距离的最大值
    深度优先搜索:

  2. 和为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;
	}
};
		

标签:pre,count,nums,560,543,int,mp,数组,100
来源: https://blog.csdn.net/qq_41762249/article/details/122058230