力扣每日一题 在受污染的二叉树中查找元素 哈希 DFS 二进制
Problem: 1261. 在受污染的二叉树中查找元素
思路
👨🏫 灵神题解
💖 二进制
- 时间复杂度:初始化为 O ( 1 ) O(1) O(1);find 为 O ( m i n ( h , l o g 2 t a r g e t ) O(min(h,log_2target) O(min(h,log2target),其中 h 为二叉树的高度
- 空间复杂度: O ( 1 ) O(1) O(1)
class FindElements {private TreeNode root;public FindElements(TreeNode root) {this.root = root;}public boolean find(int target) {target++;TreeNode cur = root; // 从根节点出发for (int i = 30 - Integer.numberOfLeadingZeros(target); i >= 0; i--) { // 从次高位开始枚举int bit = (target >> i) & 1; // target 第 i 位的比特值cur = bit == 0 ? cur.left : cur.right;if (cur == null) { // 走到空节点,说明 target 不在二叉树中return false;}}return true; // 没有走到空节点,说明 target 在二叉树中}
}

💖 哈希表
复杂度分析
- 时间复杂度:初始化为 O ( n ) O(n) O(n),其中 n n n 为二叉树的节点个数。find 为 O ( 1 ) O(1) O(1)
- 空间复杂度: O ( n ) O(n) O(n)
class FindElements {private final Set<Integer> s = new HashSet<>();public FindElements(TreeNode root) {dfs(root, 0);}public boolean find(int target) {return s.contains(target);}private void dfs(TreeNode node, int val) {if (node == null) {return;}s.add(val);dfs(node.left, val * 2 + 1);dfs(node.right, val * 2 + 2);}
}
💖 暴力版
- 时间复杂度:
- 转换: O ( n ) O(n) O(n)
- 查找: O ( n m ) O(nm) O(nm)
- 空间复杂度: O ( n ) O(n) O(n)
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class FindElements {TreeNode r;public FindElements(TreeNode root) {r = root;if(root == null) return;root.val = 0;dfs(root);}void dfs(TreeNode cur){if(cur == null)return;if(cur.left != null){cur.left.val = cur.val * 2 + 1;dfs(cur.left);}if(cur.right != null){cur.right.val = cur.val * 2 + 2;dfs(cur.right);}}boolean f(TreeNode cur, int x){if(cur == null)return false;if(cur.val == x)return true;if(f(cur.left,x) || f(cur.right,x))return true;return false;}public boolean find(int target) {return f(r,target);}
}/*** Your FindElements object will be instantiated and called as such:* FindElements obj = new FindElements(root);* boolean param_1 = obj.find(target);*/
相关文章:
力扣每日一题 在受污染的二叉树中查找元素 哈希 DFS 二进制
Problem: 1261. 在受污染的二叉树中查找元素 思路 👨🏫 灵神题解 💖 二进制 时间复杂度:初始化为 O ( 1 ) O(1) O(1);find 为 O ( m i n ( h , l o g 2 t a r g e t ) O(min(h,log_2target) O(min(h,log2targ…...
安卓Java面试题 91- 100
91. 请描述一下Intent 和 IntentFilter ?Intent是组件的通讯使者,可以在组件间传递消息和数据。 IntentFilter是intent的筛选器,可以对intent的action,data,catgory,uri这些属性进行筛选,确定符合的目标组件🚀🚀🚀🚀🚀🚀92. 阐述什么是IntentService?有何优…...
BM1684X搭建sophon c++环境
1:首先安装编译好sophon-sail 比特大陆BM1684X开发环境搭建--SOC mode-CSDN博客 2:在将之前配置的soc-sdk拷贝一份到sdk根目录,将交叉编译好的sail中的build_soc拷贝至soc-sdk文件夹内; cp -rf build_soc/sophon-sail/inlcude soc-sdk cp -rf build_soc…...
UDP通讯测试
参考资料:UNIX网络编程 实验平台:PC为client,RaspberryPi为server 基本类型和接口函数,参考man手册 #include <sys/socket.h>struct sockaddr {sa_family_t sa_family; /* Address family */char sa_data[]; /* Socket address */};#inclu…...
Linux - 进程间通信
1、进程间通信介绍 1.1、进程间通信目的 数据传输:一个进程需要将它的数据发送给另一个进程;资源共享:多个进程之间共享同样的资源;通知事件:一个进程需要向另一个或一组进程发送消息,通知它(…...
代码随想录算法训练营第七天|454. 四数相加 II
454. 四数相加 II 已解答 中等 相关标签 相关企业 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 …...
蓝桥杯刷题(五)
[蓝桥杯 2022 省 B] 刷题统计 题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示 题目描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a a…...
mysql语句中想要查询某一月每一天日期的平均值 ,SSM框架如何实现
mysql语句中想要查询某一月每一天日期的平均值 为了查询某一月份每一天的平均值,你可以使用以下SQL查询语句。这里假设你有一个表格data_table,它有一个日期时间列date_column和一个需要计算平均值的数值列value_column。 SELECTDATE_FORMAT(date_colum…...
前端框架的发展历程
文章目录 前言 一、静态页面时代 二、JavaScript的兴起 三、jQuery的出现 四、前端框架的崛起 1.AngularJS 2.React 3.Vue.js 五、面向组件化的发展趋势 总结 前言 前端框架的发展史就是一个不断进化的过程,它的发展和进化一定程度…...
【LeetCode 算法专题突破】---二分查找(⭐⭐⭐)
前言 我在算法题目的海洋中畅游已久,也曾在算法竞赛中荣获佳绩。然而,我发现自己对于算法的学习,还缺乏一个系统性的总结和归类。尽管我已经涉猎过不少算法类型,但心中仍旧觉得有所欠缺,未能形成完整的算法体系。 因…...
一个简单的HTML 个人网页
<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>个人网页</title> <style> body { f…...
【SpringCloud微服务实战05】Feign 远程调用
Feign是一个由Netflix开发的轻量级RESTful HTTP服务客户端,用于简化和优雅地调用HTTP API。它允许用户通过Java接口注解来发起请求,而不必像传统方式那样手动构建HTTP请求报文。Feign支持Spring Cloud解决方案,使得服务消费者能够像调用本地接口方法一样调用远程服务。使得开…...
LiveGBS流媒体服务器中海康摄像头GB28181公网语音对讲、语音喊话的配置
LiveGBS海康摄像头国标语音对讲大华摄像头国标语音对讲GB28181语音对讲需要的设备及服务准备 1、背景2、准备2.1、服务端必备条件(注意)2.2、准备语音对讲设备2.2.1、不支持跨网对讲示例2.2.2、 支持跨网对讲示例 3、开启音频开始对讲4、搭建GB28181视频…...
【前端】尚硅谷Webpack教程笔记
文章目录 1. 基本使用1.1 功能介绍1.2 开始使用 参考视频:尚硅谷Webpack5入门到原理 课件地址 【前端目录贴】 1. 基本使用 1.1 功能介绍 Webpack 是一个静态资源打包工具。 它会以一个或多个文件作为打包的入口,将我们整个项目所有文件编译组合成一个或多个文件输…...
Java泛型使用及局限
Java泛型的局限和使用经验 泛型的局限 任何基本类型不能作为类型参数 经过类型擦除后,List中包含的实际上还是Object的域,而在Java类型系统中Object和基本类型是两套体系,需要通过“自动装包、拆包机制”来进行交互。 2.任何在运行时需要…...
Sklearn线性回归
Scikit-learn 中的线性回归是一个用于监督学习的算法,它用于拟合数据集中的特征和目标变量之间的线性关系。以下是使用 Scikit-learn 实现线性回归的基本步骤: 1. 导入所需库 首先,你需要导入所需的库和模块。 import numpy as np import …...
APP中互联网公司的必备知识
APP中互联网公司的必备知识 敏捷开发(scrum)模型角色工作流程 项目上线发布策略发布流程灰度发布 APP发布APP软件包类型APP客户端(内部)发布平台APP客户端(线上)发布平台 熟悉APP项目(tpshop&am…...
论文翻译 - Visual Adversarial Examples Jailbreak Large Language Models
论文链接:https://arxiv.org/pdf/2306.13213.pdf 项目代码:https://github.com/Unispac/Visual-Adversarial-Examples-Jailbreak-Large-Language-Models Visual Adversarial Examples Jailbreak Aligned Large Language Models Abstract1 Introduction2 …...
android so载入过程
源自android 9 看源代码的网页 /bionic/libdl/libdl_static.c 好像没用。都是空的 /bionic/libdl/libdl.cpp 主角 22// These functions are exported by the loader 23// TODO(dimitry): replace these with reference to libc.so101// Proxy calls to bionic loader 102_…...
FlowerShop花店管理系统wpf+sqlserver
FlowerShop花店管理系统wpfsqlserver说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于C#wpf架构和sql server数据库 功能模块: 顾客登录后可以查询花卉详情然后购买 店主登录管理后台 顾客管理 删除顾客多行删…...
App Inventor蓝牙调试避坑指南:从连接失败到数据乱码,一次讲清所有常见问题
App Inventor蓝牙调试避坑指南:从连接失败到数据乱码的实战解决方案在移动应用开发领域,蓝牙通信一直是实现设备间短距离数据交换的核心技术之一。对于使用App Inventor的开发者而言,蓝牙模块提供了无需复杂编码即可实现无线通信的便捷途径。…...
echarts中heatmap鼠标滚动禁用缩放,向下滚动
配置如下效果如下...
2026年一键生成论文工具对比实测:5款神器从选题到格式全流程护航
写论文的焦虑,是每个科研人和学生都心照不宣的“隐形压力”。选题无从下手,文献检索耗时费力,逻辑框架反复推翻,格式排版让人抓狂,查重降重更是像在和系统玩“猫鼠游戏”。2026年的AI工具早已不是过去那种“打字机”&a…...
taotoken如何帮助ubuntu开发者应对大模型api的频繁更新与版本迭代
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken如何帮助Ubuntu开发者应对大模型API的频繁更新与版本迭代 对于在Ubuntu环境下进行开发的工程师而言,大模型API…...
为Claude Code配置稳定API源并解决访问限制
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为Claude Code配置稳定API源并解决访问限制 Claude Code 作为一款强大的 AI 编程辅助工具,其原生服务在某些情况下可能…...
十年以上经验的建站公司推荐|策划强、落地稳的网站制作公司盘点
互联网时代,企业官网已从单纯的信息展示窗口升级为集品牌价值传递、用户体验连接与业务高效转化于一体的核心数字阵地。行业报告显示,优质官网可帮助企业线上转化率提升35%-60%,而低效官网则可能导致潜在客户大量流失。面对市场上众多的网站建…...
Autodesk Fusion 360在Linux上的技术实现与性能优化深度解析
Autodesk Fusion 360在Linux上的技术实现与性能优化深度解析 【免费下载链接】Autodesk-Fusion-360-for-Linux This is a project, where I give you a way to use Autodesk Fusion 360 on Linux! 项目地址: https://gitcode.com/gh_mirrors/au/Autodesk-Fusion-360-for-Linu…...
如何快速上手Redux Dynamic Modules:5分钟完成Redux模块化改造
如何快速上手Redux Dynamic Modules:5分钟完成Redux模块化改造 【免费下载链接】redux-dynamic-modules Modularize Redux by dynamically loading reducers and middlewares. 项目地址: https://gitcode.com/gh_mirrors/re/redux-dynamic-modules Redux Dyn…...
Godot 4.3随机地图性能优化:避开TileMap与RNG陷阱
1. 为什么刚写完第一版随机地图就崩溃?——从“能跑”到“能用”的真实断层你兴冲冲地照着教程敲完几十行GDScript,RandomNumberGenerator初始化了,for x in range(width)循环也套好了,甚至还在_draw()里用draw_rect()把每个格子都…...
《关于 AI Agent 基础设施的一些奇思妙想》
目录 目录 目录 一、AI Agent 容器 问题背景 想法思路:API 中转站模式 多 Agent 切换 二、手机端操控 AI Agent(手机与电脑互联) 三、AI 开发依赖管理工具 总结 最近 AI Agent 越来越火,我作为一个重度使用者,…...

