- 博客(58)
- 收藏
- 关注
原创 Java中的动态代理
动态代理的优势在于它可以在不修改目标对象的情况下,增强对象的功能。它被广泛应用于许多框架中,如Spring AOP(面向切面编程)和Java EE的远程方法调用等。
2024-11-08 18:58:56 385
原创 【代码随想录Day47】单调栈Part02
问题理解:我们需要计算在给定柱子高度之间可以接住的雨水总量。雨水的量取决于柱子的高度和它们之间的相对位置。使用栈的数据结构:我们使用栈来存储柱子的索引,以便在遍历时能够快速找到可能的边界柱子。遍历柱子:遍历所有柱子。如果当前柱子的高度大于栈顶柱子的高度,意味着我们可以开始计算雨水量。弹出栈顶索引,得到当前柱子的索引,称为“中间柱子”。计算雨水量检查栈是否为空。如果栈为空,说明没有左边界,无法计算雨水量。使用栈顶的索引作为左边界,当前柱子的索引作为右边界,计算可以接住的水的高度。
2024-10-21 21:08:38 1498
原创 【代码随想录Day35】动态规划Part04
代码随想录动态规划之背包问题,这个背包最多能装多少?LeetCode:1049.最后一块石头的重量 II_哔哩哔哩_bilibili// 计算所有石头的总重量// 累加每个石头的重量// 设定目标为总重量的一半// 创建一个动态规划数组 dp,dp[j] 表示可以达到重量 j 的最大石头重量// 初始化 dp 数组,填充第一个石头的重量// 从 stones[0] 开始到 target,dp[j] 设为 stones[0]j++) {// 遍历每个石头。
2024-10-08 13:09:52 553
原创 【代码随想录Day34】动态规划Part03
是奇数,则不可能将数组分成两个相等的子集,直接返回。: 首先通过一个循环计算。: 创建一个二维布尔数组。个数字是否可以组成和为。
2024-10-07 21:36:36 870
原创 【代码随想录Day27】贪心算法Part01
的长度,会超出时间限制。我们可以通过使用双指针的方法将时间复杂度优化到。一开始使用了双重循环,时间复杂度为。
2024-09-24 19:58:08 1031
原创 Java回溯算法模板详解:从基础到实战
回溯算法是一种经典的算法设计技巧,广泛应用于解决组合、排列、子集等问题。本文将详细介绍如何使用Java编写一个通用的回溯算法模板,并解释每个部分的功能和使用方法。回溯算法是一种强大的工具,能够解决许多复杂的问题。通过本文提供的模板,你可以轻松地开始编写自己的回溯算法。希望这个模板能够帮助你在解决实际问题时更加得心应手。方法中,你可以创建一个。
2024-09-21 22:15:06 742
原创 【代码随想录Day23】回溯算法Part02
数组进行排序后,相同的数字会相邻排列。这样,在遍历过程中,如果当前考虑的数字与前一个数字相同,并且前一个数字已经在这个位置被考虑过(即在当前路径中已经被选择过),那么就没有必要再考虑当前这个相同的数字了,因为这样做会导致重复的解。当题目要求返回的组合是唯一的(即不能包含重复的组合),我们需要采取一定的措施来避免生成重复的结果。位置的所有可能,包括那些重复的数字。通过这种方式,我们保证了每种情况下的唯一性,同时减少了不必要的计算,提高了算法效率。的目的是跳过所有与前一个已检查过的元素相同的元素。
2024-09-21 16:51:21 530
原创 【代码随想录Day20】二叉树Part07
本题是二叉搜索树,二叉搜索树是有序的,可以好好利用一下这个特点。那么只要从上到下去遍历,遇到 cur节点是数值在[p, q]区间中则一定可以说明该节点cur就是p 和 q的公共祖先。如图,我们从根节点搜索,第一次遇到 cur节点是数值在[q, p]区间中,即 节点5,此时可以说明 q 和 p 一定分别存在于 节点 5的左子树,和右子树中。如果递归函数有返回值,如何区分要搜索一条边,还是搜索整个树。
2024-09-17 19:42:50 512
原创 深入浅出Java匿名内部类:用法详解与实例演示
匿名内部类(Anonymous Inner Class)在Java中是一种非常有用的特性,它允许你在一个类的定义中直接创建并实例化一个内部类,而不需要为这个内部类指定一个名字。
2024-09-16 12:05:04 1041
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人