news 2026/4/18 13:10:22

滑窗+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/18 3:36:39

如何通过国产信创动环监控系统优化工厂环境管理?

国产信创动环监控系统为工厂环境管理带来了新的变革。它通过实时数据监测&#xff0c;帮助企业有效掌握环境状况和设备运行情况&#xff0c;从而提高管理效率。例如&#xff0c;系统能够自动检测温度、湿度和有害气体浓度&#xff0c;并随时反馈给管理者。当出现安全隐患时&…

作者头像 李华
网站建设 2026/4/18 5:39:22

Agent权限失控危机四伏,政务数字化转型如何破局?

第一章&#xff1a;政务 Agent 的权限控制在政务系统中&#xff0c;Agent 通常指代自动化服务代理或智能执行单元&#xff0c;负责数据采集、流程触发与跨系统交互。由于政务数据敏感度高、业务逻辑复杂&#xff0c;必须对 Agent 实施严格的权限控制机制&#xff0c;确保其行为…

作者头像 李华
网站建设 2026/4/18 5:25:25

产业分化——通用入口、垂直深井与场景嵌入的三重奏

当技术范式发生转移&#xff0c;其引发的涟漪必然重塑产业格局。AI搜索领域并未走向单一垄断&#xff0c;反而因技术特性、用户需求和应用场景的差异&#xff0c;催生了三条清晰且可能长期并存的演进路径&#xff1a;打造通用智能入口、挖掘垂直专业深井、以及融入超级场景生态…

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

AI全景之第四章第三节:机器学习核心技术体系(强化学习)

在机器学习的三大核心范式中,强化学习(Reinforcement Learning, RL)以其独特的“试错学习”机制脱颖而出——它既不像监督学习那样依赖标注数据,也不同于无监督学习专注于数据分布挖掘,而是通过智能体(Agent)与环境(Environment)的持续交互,在“探索-利用”的平衡中寻…

作者头像 李华
网站建设 2026/4/18 5:38:12

从WRF到Transformer:6种Agent模型实战对比,结果令人震惊

第一章&#xff1a;从WRF到Transformer&#xff1a;气象Agent模型演进全景气象建模技术在过去几十年中经历了从物理驱动到数据驱动的深刻变革。早期以WRF&#xff08;Weather Research and Forecasting&#xff09;为代表的传统数值天气预报模型&#xff0c;依赖于大气动力学方…

作者头像 李华