news 2026/4/16 11:14:11

滑窗+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/4/16 10:16:34

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

MoE 是 Mixture of Experts&#xff08;混合专家模型&#xff09;的缩写。它是目前解决大模型 “既要变得超级聪明&#xff08;参数量大&#xff09;&#xff0c;又要跑得快&#xff08;推理成本低&#xff09;” 这个矛盾的核心架构技术。目前最顶尖的模型&#xff0c;如 GPT-…

作者头像 李华
网站建设 2026/4/15 21:44:11

S32K3启动RAM数据初始化

想要搞清这个问题&#xff0c;需要重点研究startup_cm.s文件。启动时&#xff0c;RAM数据的初始化主要包括两个过程&#xff1a;RAM区域初始化&#xff08;数据清0&#xff09;&#xff1b;有初始值的变量需要从flash中加载到ram中。RAM区域初始化这一段代码由汇编实现&#xf…

作者头像 李华
网站建设 2026/4/16 10:17:54

【工业互联网Agent性能跃迁指南】:3步打造高精度实时分析系统

第一章&#xff1a;工业互联网Agent数据分析的核心价值在工业互联网体系中&#xff0c;Agent作为部署于设备端的数据采集与执行单元&#xff0c;承担着连接物理世界与数字系统的桥梁作用。通过对Agent收集的运行状态、环境参数、操作日志等多维数据进行深度分析&#xff0c;企业…

作者头像 李华
网站建设 2026/4/16 10:17:12

基于单片机的医院病房无线呼叫系统

一、系统整体架构设计 基于单片机的医院病房无线呼叫系统采用“终端-中继-主机”三层架构&#xff0c;实现病房与护士站的实时通信。终端层为分布在各病房的呼叫分机&#xff0c;每个分机配备单片机&#xff08;STC89C52&#xff09;、按键、LED指示灯与无线发射模块&#xff0…

作者头像 李华
网站建设 2026/4/11 9:50:03

行人室内定位系统电路设计

一、系统整体电路架构 行人室内定位系统电路采用“感知-处理-通信-供电”四模块集成架构&#xff0c;实现厘米级定位精度与低功耗运行。感知模块包含UWB&#xff08;超宽带&#xff09;测距电路与惯性测量单元&#xff08;IMU&#xff09;&#xff0c;UWB电路采用DW1000芯片搭建…

作者头像 李华
网站建设 2026/3/25 4:52:07

高级树模型与可解释机器学习:随机森林、贝叶斯方法及异质性效应建模

在多源观测数据爆炸式增长的今天&#xff0c;如何从复杂、高维、非线性的自然系统中提取可靠知识&#xff0c;已成为地球科学、生态学、环境工程与公共健康等领域科研工作者的核心挑战。传统的统计模型常受限于线性假设与变量交互建模能力&#xff0c;而“黑箱”深度学习又难以…

作者头像 李华