news 2026/7/11 19:22:38

tree

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
tree

lc333

DFS遍历树,每个节点记录子树最值和BST节点数(-1非BST)

验证当前节点为根的子树是否BST,实时更最大BST节点数

class Solution {
int ans = 0;
using T = tuple<int, int, int>;

public:
int largestBSTSubtree(TreeNode* root) {
if (!root) return 0;
dfs(root);
return ans;
}

T dfs(TreeNode* n)
{
int mn = n->val, mx = n->val;
int ls = 0, rs = 0;
bool ok = true;

if (n->left) {
auto [lm, lx, lz] = dfs(n->left);
if (lz == -1 || n->val <= lx) ok = false;
mn = min(mn, lm);
mx = max(mx, lx);
ls = lz;
}

if (n->right) {
auto [rm, rx, rz] = dfs(n->right);
if (rz == -1 || n->val >= rm) ok = false;
mn = min(mn, rm);
mx = max(mx, rx);
rs = rz;
}

int sz = ok ? (1 + ls + rs) : -1;
if (sz != -1) ans = max(ans, sz);

return {mn, mx, sz};
}
};

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

14、psad:检测可疑流量与高级应用

psad:检测可疑流量与高级应用 1. psad 对不同扫描类型的检测 1.1 TCP 选项差异 在 Nmap SYN 扫描中,TCP 头部的选项部分显著缩短。它仅使用一个选项,即最大段大小(Maximum Segment Size),并将其设置为 1460。而大多数真实的 TCP 栈除了最大段大小外,还会发送多个选项…

作者头像 李华
网站建设 2026/7/8 21:37:46

突破硬件限制:CPU版AlphaFold快速部署全攻略

你是否为AlphaFold的高配置需求而烦恼&#xff1f;实验室GPU资源总是被抢占&#xff1f;本地设备没有专业显卡&#xff1f;本指南将帮你打破硬件壁垒&#xff0c;在普通CPU环境中实现高效的蛋白质结构预测&#xff0c;仅需三个步骤即可完成从环境准备到结果分析的完整流程。通过…

作者头像 李华
网站建设 2026/7/12 2:48:37

VRM与VRChat模型转换工具:实现虚拟形象跨平台自由流动

VRM与VRChat模型转换工具&#xff1a;实现虚拟形象跨平台自由流动 【免费下载链接】VRMConverterForVRChat 项目地址: https://gitcode.com/gh_mirrors/vr/VRMConverterForVRChat VRM Converter for VRChat是一款专为Unity开发者设计的强大工具&#xff0c;能够轻松实现…

作者头像 李华
网站建设 2026/7/11 21:45:38

Python缠论量化交易实战指南:从理论到盈利的完整路径

在量化交易的世界里&#xff0c;Python缠论分析正成为技术分析领域的革命性工具。对于渴望在复杂市场中寻找稳定盈利策略的交易者来说&#xff0c;掌握缠论框架的核心应用技巧至关重要。本文将带您深入实战&#xff0c;分享如何将缠论理论转化为可执行的量化策略。 【免费下载链…

作者头像 李华
网站建设 2026/7/12 1:20:38

26、端口敲门与单包授权:网络安全认证技术解析

端口敲门与单包授权:网络安全认证技术解析 1. 端口敲门技术基础 端口敲门是一种通过特定的端口访问序列来临时打开防火墙端口的技术。我们可以通过一个脚本来观察 UDP 数据包的校验和情况。执行如下命令: # ./craft_udp_checksum.pl 192.168.10.3 192.168.10.1 5005 deed…

作者头像 李华