news 2026/2/13 13:54:20

滑窗+hash|pii dfs

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
滑窗+hash|pii dfs

lc2423

// try -- every char

一个变量控制不明白 那就再加一个变量🤓👆🏻

++cnt; // restore

class Solution {

public:

bool equalFrequency(string word)

{

unordered_map<char,int> hash;

for(auto& c:word)

hash[c]++;

// try -- every char

for(auto& [ch, cnt] : hash)

{

--cnt;

bool f=true;

int t = 0; //freq

for(auto& [k, v] : hash)

{

if(v == 0) continue;

if(t == 0) t = v; // init

if(v != t)

{

f=false;

break;

}

}

if(f) return true;

++cnt; // restore

}

return false;

}

};

lc549

pii dfs遍历二叉树

记录每个节点“递增连续长度up”和“递减连续长度down”

计算以该节点为中心的最长连续序列长度

最终得到整棵树的最长连续序列

"递"获取每个node pii

"归"的时候return以该节点为中间的最长链

class Solution {

public:

int ans = 0;

int longestConsecutive(TreeNode* root) {

auto dfs = [&](this auto&& dfs, TreeNode* node) -> pair<int, int> {

if (!node) return {0, 0};

auto [lu, ld] = dfs(node->left);

auto [ru, rd] = dfs(node->right);

int u = 1, d = 1;

if (node->left && node->val == node->left->val + 1) u = max(u, lu + 1);

if (node->right && node->val == node->right->val + 1) u = max(u, ru + 1);

//record two path choice mx

if (node->left && node->val == node->left->val - 1) d = max(d, ld + 1);

if (node->right && node->val == node->right->val - 1) d = max(d, rd + 1);

ans = max(ans, u + d - 1);

return {u, d};

};

dfs(root);

return ans;

}

};

lc3641

滑窗和hash天生一对😋

class Solution {
//set size
//max len
public:
int longestSubarray(vector<int>& nums, int k)
{
int n=nums.size();
unordered_map<int,int> hash;
int l=0,r=0,mx=0,rp=0;
while(r<n)
{
if(++hash[nums[r]]==2)
rp++;
r++;
while(rp>k)
{
if(--hash[nums[l]]==1)
rp--;
l++;
}
mx=max(mx,r-l);
}
return mx;
}
};

rust导入hash

use std::collections::HashMap;

impl Solution {
pub fn longest_subarray(nums: Vec<i32>, k: i32) -> i32 {
let n = nums.len();
let mut hash = HashMap::new();
let mut l = 0;
let mut rp = 0;
let mut mx = 0;

for r in 0..n {
let cnt =hash.entry(nums[r]).and_modify(|c| *c += 1).or_insert(1);
if *cnt == 2 {
rp += 1;
}

while rp > k {
let cnt = hash.entry(nums[l]).and_modify(|c| *c -= 1).or_insert(0);
if *cnt == 1 {
rp -= 1;
}
l += 1;
}

mx = mx.max((r - l + 1) as i32);
}

mx
}
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/11 7:23:31

AI核心知识56——大语言模型之ToT(简洁且通俗易懂版)

Tree of Thoughts (ToT / 思维树) 是提示工程&#xff08;Prompt Engineering&#xff09;中一种高级且强悍的推理框架。如果说 Chain of Thought (CoT / 思维链) 是让 AI “一条路走到黑” 地线性思考&#xff0c;那么 ToT 就是让 AI 学会像人类大师一样“深思熟虑、多步推演、…

作者头像 李华
网站建设 2026/2/11 7:23:26

35岁大龄程序员突破中年危机魔咒:职业转型与个人成长的实用指南!

“中年危机”对于我们当代人来说&#xff0c;是令我们每个人都惶恐不安的四个字&#xff0c;但我们又不得不面对它。对于我们程序员来说尤为明显&#xff0c;就像一个魔咒一样挥之不去。 一、中年危机魔咒 IT行业一直是内卷严重的行业&#xff0c;度过中年危机对我们大多数程…

作者头像 李华
网站建设 2026/2/11 15:19:55

《金赐:大航海的肮脏秘密》

《金赐&#xff1a;大航海的肮脏秘密》 第一章&#xff1a;被诅咒的货仓 1502年&#xff0c;里斯本&#xff0c;贝伦塔下的阴影里。 费尔南多德索萨是个赌徒。他赌输了祖产&#xff0c;赌输了爵位&#xff0c;现在他要把最后一条命押在“圣安东尼奥号”上。这艘载重200吨的卡拉…

作者头像 李华
网站建设 2026/2/11 15:19:53

量子 Agent 如何实现毫秒级优化?:深入解析5大核心算法突破

第一章&#xff1a;量子 Agent 的毫秒级优化挑战在当前高并发、低延迟的分布式系统中&#xff0c;量子 Agent 面临着前所未有的性能压力。其核心任务是在毫秒级响应时间内完成复杂的状态评估与策略推导&#xff0c;这对底层计算架构和算法效率提出了极致要求。实时性瓶颈的根源…

作者头像 李华
网站建设 2026/2/12 19:33:23

12.18 中后台项目-权限管理

![[1280X1280 (46).PNG]] ![[1280X1280 (48).PNG]] ![[1280X1280 (50).PNG]] 权限管理总结 ![[download_image.jpeg]] 模拟路由信息数据 adminRouter.json [{"path": "/dashboard","component": "/layout/index.vue","title"…

作者头像 李华
网站建设 2026/2/11 7:23:18

2025届计算机专业大学生,敢问路在何方?

目录 互联网裁员 计算机专业本科生就业情况 计算机专业转角遇到爱 网络安全行业特点 如何入门学习网络安全 零基础入门 互联网裁员 这两天&#xff0c;关于大厂&#xff0c;特别是互联网大厂裁员、优化员工的新闻再次受到关注。 从裁员情况看&#xff0c;谷歌、亚马逊…

作者头像 李华