news 2026/7/21 16:59:00

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/21 1:18:24

信息安全技术与Kali Linux

信息安全技术概述 信息安全技术旨在保护信息系统中的数据免受未经授权的访问、泄露、篡改或破坏。其核心目标是确保数据的机密性、完整性和可用性&#xff08;CIA三要素&#xff09;。随着数字化进程加速&#xff0c;信息安全技术已成为企业、政府及个人的关键需求。 核心信息…

作者头像 李华
网站建设 2026/7/22 0:55:41

GEO系统:多区域搜索排名监控与品牌形象统一维护解决方案

一、品牌资产管理的数字化挑战在全球化运营和数字化营销时代&#xff0c;企业品牌面临两大核心挑战&#xff1a;区域分散性&#xff1a;不同地区搜索结果差异导致的品牌曝光不均衡形象碎片化&#xff1a;多渠道内容传播引发的品牌认知不一致二、GEO系统核心功能架构1. 智能多区…

作者头像 李华
网站建设 2026/7/22 0:45:05

17、Apache服务器的代理配置、URL重写、自定义日志及性能监控

Apache服务器的代理配置、URL重写、自定义日志及性能监控 在Web服务器管理中,Apache是一款广泛使用的开源服务器软件。本文将详细介绍Apache服务器的代理配置、URL重写、自定义日志创建以及性能监控的相关知识和操作步骤。 1. 代理服务器配置 当代理服务器正确设置后,若客…

作者头像 李华
网站建设 2026/7/21 2:08:06

18、Apache服务器性能测试与配置全解析

Apache服务器性能测试与配置全解析 1. 基础问题解答 在使用Apache服务器时,有一些基础问题需要了解。例如,若要在重启服务器前拒绝所有新请求并完成所有待处理请求,可使用 apachectl graceful 选项。 ab 工具的默认请求数为1,而Web服务器守护程序常用的配置文件是 h…

作者头像 李华
网站建设 2026/7/20 19:14:37

PostgreSQL 18 远程操作实战:从连接到备份的操作实践记录

PostgreSQL 18 远程操作实战&#xff1a;从连接到备份的完整指南 引言 作为一名开发者&#xff0c;掌握数据库的基本操作是必备技能之一。最近我在 Ubuntu 24.04 服务器上安装了 PostgreSQL 18&#xff0c;为了更好地理解和掌握 PostgreSQL 的日常管理和操作&#xff0c;我进…

作者头像 李华
网站建设 2026/7/19 18:56:32

S33-装一个Server2016+PCS7虚拟机

最近不知道哪股邪风吹过小编的头顶&#xff0c;陆续接到3个PCS7的项目&#xff0c;真是看小编头发还不够秃非得再薅掉几根的节奏。那么如题&#xff0c;闲话少说&#xff1b;跟上节奏&#xff0c;先来搭建一个编程环境。依然采用虚拟机的方式。1-准备虚拟机软件&#xff0c;2-准…

作者头像 李华