news 2026/7/3 2:26:40

LeetCode算法题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode算法题

day01

1.二叉树的最近公共祖先

算法思想:递归+回溯。首先先使用先序遍历,遍历二叉树,在遍历的过程中,还需要保存节点的父节点val值,将遍历节点的val当作key,将父节点的val当作value存入一个Map集合,然后从需要查找最近公共祖先的两个节点中的某一个节点出发,回溯他的父节点,并将回溯路径存入Set集合,回溯完成后,从另一个节点回溯,如果回溯的过程中,某一个节点在set集合出现,那么该节点就是最近的公共祖先,否则为空。

代码如下:

class Solution { Map<Integer, TreeNode> parent = new HashMap<Integer, TreeNode>(); Set<Integer> visited = new HashSet<Integer>(); public void dfs(TreeNode root) { if (root.left != null) { parent.put(root.left.val, root); dfs(root.left); } if (root.right != null) { parent.put(root.right.val, root); dfs(root.right); } } public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { dfs(root); while (p != null) { visited.add(p.val); p = parent.get(p.val); } while (q != null) { if (visited.contains(q.val)) { return q; } q = parent.get(q.val); } return null; } } class TreeNode{ int val; TreeNode left; TreeNode right; TreeNode(int x){ val = x; } }

2.每日温度

算法思想:定义一个栈,栈中存储未找到下一个更大温度的日期索引;遍历每个日期的温度,对当前遍历的日期索引:

  1. 若栈不为空,且当前日期的温度 > 栈顶索引对应的温度,则循环弹出栈顶索引:
    • 计算 “当前索引 - 栈顶索引”(即栈顶索引对应的日期,需要等待的天数);
    • 将该天数存入 ans 数组中与栈顶索引对应的位置;
  2. 重复步骤 1,直到栈为空,或当前日期的温度 ≤ 栈顶索引对应的温度;
  3. 将当前日期的索引压入栈中;遍历结束后,ans 数组中未被赋值的位置(无更大温度的日期)默认值为 0,直接返回 ans 数组。
    class Solution { public int[] dailyTemperatures(int[] temperatures) { int length = temperatures.length; int[] ans = new int[length]; Deque<Integer> stack = new LinkedList<Integer>(); for (int i = 0; i < length; i++) { int temperature = temperatures[i]; while (!stack.isEmpty() && temperature > temperatures[stack.peek()]) { int prevIndex = stack.pop(); ans[prevIndex] = i - prevIndex; } stack.push(i); } return ans; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/3 12:26:37

12、Apache服务器安全与性能优化指南

Apache服务器安全与性能优化指南 1. 攻击溯源与处理 当遭受攻击时,攻击来源很可能是互联网上被入侵的随机机器,在你和该机器之间可能存在一整条被入侵系统的链条。在考虑反击之前,要明白攻击源机器可能并非真正的攻击者。若觉得需要采取行动,应尽可能收集攻击者来源的信息…

作者头像 李华
网站建设 2026/7/3 10:03:08

PostgreSQL 18 安装学习心得

PostgreSQL 18 安装学习心得 安装日期 2025-12-16 安装环境 操作系统&#xff1a;Ubuntu 24.04PostgreSQL 版本&#xff1a;18.1安装方式&#xff1a;通过官方仓库安装 安装过程中遇到的问题及解决方案 问题1&#xff1a;sudo: a terminal is required to read the password 现…

作者头像 李华
网站建设 2026/7/2 22:47:02

AI生成证件照的核心技术逻辑与实现路径解析

随着数字化场景深度渗透&#xff0c;证件照需求从线下照相馆延伸至线上政务、求职、签证等场景&#xff0c;传统拍摄需预约、修图依赖人工的流程&#xff0c;难以满足“即时性”与“合规性”要求。AI技术通过构建自动化处理 pipeline&#xff0c;将证件照生成从“人工主导”转向…

作者头像 李华
网站建设 2026/7/3 10:03:05

基于STM32单片机太阳能风能路灯风光互补锂电池电量定时蓝牙无线APP/WiFi无线APP/摄像头视频监控/云平台设计S355

STM32-S355-太阳能风能时钟定时USB灯光照锂电池电压电量充电电压自动手动升压声光提醒OLED屏阈值按键(无线方式选择) 产品功能描述&#xff1a;本系统由STM32F103C8T6单片机核心板、OLED屏、&#xff08;无线蓝牙/无线WIFI/无线视频监控/联网云平台模块-可选&#xff09;、纽扣…

作者头像 李华
网站建设 2026/7/1 21:19:33

LobeChat能否上传训练数据?用于后续模型优化

LobeChat 能否上传训练数据用于模型优化&#xff1f; 在如今大语言模型&#xff08;LLM&#xff09;遍地开花的时代&#xff0c;越来越多用户不再满足于“用现成的AI”&#xff0c;而是希望构建属于自己的智能助手——既能私有部署保障数据安全&#xff0c;又能根据业务场景灵活…

作者头像 李华
网站建设 2026/7/1 21:18:21

还在用查重超标的AI写论文?8款免费靠谱工具查重低于9原创高

还在熬夜对着空白文档发呆&#xff0c;用通用AI生成一堆看似华丽却查重率爆表的文字&#xff1f;还在被导师用红笔圈出“AI痕迹过重”、“逻辑不通”、“引用不规范”而打回重写&#xff1f;还在因为“学术不端”的风险而心惊胆战&#xff0c;生怕辛苦几个月的成果付之东流&…

作者头像 李华