logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Java-代码随想录第三天| 203.移除链表元素 、 707.设计链表 、 206.反转链表

链表理论基础,虚拟头节点,双指针解决链表问题;链表的基础操作

文章图片
#java#链表#leetcode +1
java-代码随想录第十六天| 112.路径总和、513.找树左下角的值、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树

本文介绍了四道二叉树相关算法题的解法。112题通过递归减去节点值判断是否存在路径和等于目标值;513题使用深度优先搜索记录最底层最左节点值;106和105题分别根据中序+后序、前序+中序遍历序列重构二叉树,通过哈希表定位根节点并递归构建左右子树。所有解法均采用递归思想,通过巧妙处理遍历序列和节点位置关系来解决问题。

文章图片
#数据结构#算法#leetcode +1
java-代码随想录第十七天| 700.二叉搜索树中的搜索、617.合并二叉树、98.验证二叉搜索树

本文总结了三个二叉搜索树相关算法:700题通过递归在BST中搜索指定值节点;617题递归合并两棵二叉树,重叠节点值相加;98题利用中序遍历验证BST的有效性,检查节点值是否严格递增。三个问题都采用递归解法,分别处理了BST的查找、合并和验证操作,体现了递归在树结构问题中的典型应用模式。

文章图片
#算法#leetcode#java +1
java-代码随想录第22天| 回溯算法理论基础、77.组合、216.组合总和III、17.电话号码的字母组合

本文介绍了回溯算法的理论基础及其应用。回溯法是一种通过穷举所有可能性来解决问题的搜索算法,本质上是递归的副产品。文章阐述了回溯法的效率问题(本质是穷举,可通过剪枝优化)以及其适用的五大类问题:组合、切割、子集、排列和棋盘问题。重点讲解了回溯算法的通用模板,包括终止条件、遍历过程等核心要素,并通过三个典型例题(组合、组合总和III、电话号码字母组合)展示了回溯算法的具体实现。每个例题都给出了完整的J

文章图片
#算法#java#leetcode
java-代码随想录第十八天| 530.二叉搜索树的最小绝对差 、 501.二叉搜索树中的众数 、 236. 二叉树的最近公共祖先

本文总结了三个二叉搜索树相关算法题解:1. 530题使用中序遍历计算BST相邻节点最小差值;2. 501题通过中序遍历统计BST中出现频率最高的众数,提供哈希表和双指针两种解法;3. 235题利用BST特性递归查找两个节点的最近公共祖先。三题均基于BST有序特性,采用遍历或递归策略求解,涉及前驱节点比较、频率统计和祖先节点判断等技巧。

文章图片
#算法#数据结构#leetcode +1
java-代码随想录第二十天| 235. 二叉搜索树的最近公共祖先、 701.二叉搜索树中的插入操作、 450.删除二叉搜索树中的节点

本文介绍了二叉搜索树的三类操作:最近公共祖先、节点插入和节点删除。235题通过递归找到两个节点的最近公共祖先;701题提供了递归和迭代两种方法在BST中插入新节点;450题给出三种删除BST节点的方案,包括常规递归法、改进递归法和迭代法。所有解法都充分利用了BST的性质(左小右大),并提供了清晰的代码实现。这些操作是BST的基础算法,理解其实现原理对掌握树结构至关重要。

文章图片
#算法#java#leetcode
java-代码随想录第27天|455.分发饼干、 376.摆动序列、 253.最大子数组和

摘要:本文介绍了三个贪心算法经典问题。455题通过排序饼干和孩子胃口,用最小饼干满足最小胃口来最大化满足人数。376题通过检测相邻元素的差值正负交替来计算最长摆动子序列长度。53题通过维护当前子数组和,当和为负时重置起点,来寻找最大子数组和。这些解法都体现了贪心算法的"局部最优推出全局最优"思想,展示了不同场景下贪心策略的具体应用。

文章图片
#算法#java#leetcode
java-代码随想录第28天| 122.买卖股票的最佳时机II、 55.跳跃游戏 、1005.K次取反后最大化的数组和

本文总结了三个贪心算法相关的LeetCode题目解法:1)买卖股票的最佳时机II通过收集每日正利润求和;2)跳跃游戏通过维护最大覆盖范围判断可达性;3)K次取反后最大化的数组和通过排序后优先翻转负数,再处理剩余翻转次数。每个解法都体现了贪心算法的核心思想——局部最优解导向全局最优解,代码简洁高效地解决了问题。(149字)

文章图片
#数据结构#leetcode#java
java-代码随想录第29天|134. 加油站、135. 分发糖果、 860.柠檬水找零、406.根据身高重建队列

这篇文章摘要了四个经典算法问题的解决方案:1.加油站问题(134题)通过比较总油量和油耗确定唯一起点;2.分发糖果问题(135题)采用双向遍历确保评分高的孩子获得更多糖果;3.柠檬水找零问题(860题)用贪心算法处理5/10/20美元找零;4.身高重建队列问题(406题)先按身高降序排序再根据k值插入。每个问题都配有清晰的解题思路和Java实现代码。

文章图片
#数据结构#java#leetcode
java-代码随想录第30天|452. 用最少数量的箭引爆气球、 435. 无重叠区间、 763.划分字母区间

本文摘要: 452题要求用最少数量的箭引爆所有气球,解法是将气球按起点排序,统计需要新箭的次数(当气球不重叠时)。435题要求移除最少数量的区间使剩余区间不重叠,同样先排序,统计需要移除的区间数。763题要求将字符串划分为最多片段,解法是记录每个字母最后出现位置,当遍历到当前最大边界时进行分割。三题都采用了贪心算法思想,通过预处理和遍历解决问题。

文章图片
#算法#leetcode#java
    共 38 条
  • 1
  • 2
  • 3
  • 4
  • 请选择