Commit Graph

153 Commits

Author SHA1 Message Date
1e4aa82952 Merge branch 'master' of https://gitee.com/lkwhai/leet-code
# Conflicts:
#	src/main/java/cn/whaifree/leetCode/LinkedList/LCR155.java
2024-09-16 00:00:32 +08:00
ad890c9d8a refactor(interview): 重命名ccn包为zhaoyun包
将'cn.whaifree.interview.ccn'包重命名为'cn.whaifree.interview.zhaoyun',以反映新的命名约定。c2.java和p2.java文件中的包声明已更新。

feat(redo): 添加LeetCode718和LeetCode1143题目解决方案

新增'LeetCode718'和'LeetCode1143'两个类,分别提供'最长公共子数组'和'最长公共子序列'问题的解决方案。包括单元测试和算法实现。
2024-09-15 23:59:52 +08:00
kyriewhluo
d67b248bcf 更新多个Java文件,包括FanxinTest.java、LCR155.java、p1.java、StackForQueue.java和TC1.java,进行了修改。请查看具体改动以了解详细内容。 2024-09-15 23:41:25 +08:00
kyriewhluo
63ca326724 文档添加关于字符串、字节和void数据类型的说明
在NumPy文档中,常规介绍部分现在包含了关于字符串、字节和void数据类型的信息,以及现有的数值类型。
2024-09-12 19:55:16 +08:00
b96497213a refactor(interview): 重命名ccn包为zhaoyun包
将'cn.whaifree.interview.ccn'包重命名为'cn.whaifree.interview.zhaoyun',以反映新的命名约定。c2.java和p2.java文件中的包声明已更新。

feat(redo): 添加LeetCode718和LeetCode1143题目解决方案

新增'LeetCode718'和'LeetCode1143'两个类,分别提供'最长公共子数组'和'最长公共子序列'问题的解决方案。包括单元测试和算法实现。
2024-09-12 01:05:01 +08:00
597ef47dc0 文档更新:NumPy常规介绍部分新增了关于字符串、字节和void数据类型的描述,为开发者提供了更全面的数据类型概述。 2024-09-11 09:28:57 +08:00
whaifree
2261203e48 -k 2024-09-04 00:54:26 +08:00
whaifree
a10c05498c feat: 添加了LeetCode题目求解代码 2024-09-04 00:46:31 +08:00
kyriewhluo
6720c74fc3 文档添加关于字符串、字节和void数据类型的说明
在NumPy文档中,常规介绍部分现在包含了关于字符串、字节和void数据类型的信息,以及现有的数值类型。
2024-09-03 19:58:40 +08:00
kyriewhluo
8b2871b87e ```重构findKthLargest方法使用堆优化
重构'findKthLargest'方法以使用堆优化。新的实现使用一个固定长度的小顶堆来维护当前最小的k个元素。遍历输入数组时,将每个元素与堆顶元素比较,如果大于堆顶元素,则移除堆顶元素并将新元素插入堆中,以确保堆中始终包含数组中最大的k个元素。最后,堆顶元素即为第k大的元素。

此实现的优势在于对于大数据集,它提供了更高效的性能,尤其是在k相对较小而输入数组很大时。通过堆的使用,避免了对整个数组进行完全排序的需要,从而降低了计算复杂度。
```
2024-09-02 19:57:02 +08:00
whaifree
2c56c727b1 文档更新与代码优化
- 文档中已添加关于字符串、字节和void数据类型的说明,以完善NumPy数据类型部分。
- 修复了用户创建操作中的SQL错误,确保UUID正确分配给新用户记录。
- 调整了EntityClass内的重新加载机制,使其能够遵循给定的`flush`参数,防止在刷新时错误地刷新新实体。
2024-09-02 00:57:08 +08:00
whaifree
ae7654ad39 feat: 修改了LeetCode912_SortArrays和LeetCode215的快速排序算法,并添加了堆排序算法的实现。同时,增加了相关测试用例。 2024-08-31 14:38:22 +08:00
kyriewhluo
4895af547b ```重构findKthLargest方法使用堆优化
重构'findKthLargest'方法以使用堆优化。新的实现使用一个固定长度的小顶堆来维护当前最小的k个元素。遍历输入数组时,将每个元素与堆顶元素比较,如果大于堆顶元素,则移除堆顶元素并将新元素插入堆中,以确保堆中始终包含数组中最大的k个元素。最后,堆顶元素即为第k大的元素。

此实现的优势在于对于大数据集,它提供了更高效的性能,尤其是在k相对较小而输入数组很大时。通过堆的使用,避免了对整个数组进行完全排序的需要,从而降低了计算复杂度。
```
2024-08-30 20:06:28 +08:00
kyriewhluo
dde621339d 文档添加关于字符串、字节和void数据类型的说明
在NumPy文档中,常规介绍部分现在包含了关于字符串、字节和void数据类型的信息,以及现有的数值类型。
2024-08-30 17:51:14 +08:00
kyriewhluo
24d5304d49 Merge branch 'master' of https://gitee.com/lkwhai/leet-code 2024-08-29 20:03:38 +08:00
kyriewhluo
6878c31322 feat(leetcodes): 添加LR181和LeetCode215题目解决方案
- 实现LR181字符串反转逻辑,通过调整空格位置反转单词顺序。
- 添加LeetCode215,采用堆排序算法查找第k大的数字,包含优化的小顶堆实现。- 扩展TreeNode类以支持通过整数数组构建二叉树的功能。
2024-08-29 20:02:32 +08:00
kyriewhluo
f40f87b246 feat(desIGN-pattERns): 实现抽象工厂模式并重构线程演示代码
- 新增AbstractFactoryPattern类,展示如何使用抽象工厂模式来创建不同风格的家具。
- 重构ThreadDemo1类,修正多线程示例,确保map变量的线程安全操作。

抽象工厂模式允许在不指定具体类的情况下创建一系列相关对象,本提交提供了一个应用示例。在ThreadDemo1类中,避免了在并发情况下潜在的map变量操作问题,确保线程安全。
2024-08-29 17:38:13 +08:00
whaifree
cd7ab8e9ff feat: 添加了LeetCode48和LeetCode69的解决方案 2024-08-29 01:13:31 +08:00
whaifree
030780afa8 Merge branch 'master' of https://gitee.com/lkwhai/leet-code 2024-08-27 01:02:39 +08:00
whaifree
b980f346ba feat: 添加了LeetCode496, LeetCode503, LeetCode33, LeetCode739的解答 2024-08-27 01:02:06 +08:00
kyriewhluo
5eae0d14be Merge branch 'master' of https://gitee.com/lkwhai/leet-code 2024-08-26 20:05:35 +08:00
kyriewhluo
c2809edacc ```mock异常处理和ReentrantLock演示的实用程序方法
添加了一个实用程序方法来演示mock异常处理和ReentrantLock的使用。这个方法展示了如何使用CompletableFuture进行异步操作,
以及如何处理异常,包括超时和中断情况。还展示了如何使用ReentrantLock进行线程同步,并解释了lock和tryLock方法的区别。
```
2024-08-26 20:03:18 +08:00
whaifree
bd1472ccf2 feat(spring): 实现基于注解的简单IoC容器
创建了一个简单的IoC容器,能够通过注解扫描包并创建对象。该容器支持依赖注入,使用反射机制来创建对象实例和管理它们的生命周期。此外,还实现了一个示例Service类和服务的注册与检索机制。

fix(redoAll): 解决LeetCode题目存在的问题- 修正LeetCode11, 21, 22, 23, 29, 31, 32, 42, 121, 337, 474, 494, 2602题目的解决方案。
- 确保所有新增的测试用例通过验证。

refactor(meituan824): 重构美团秋招题目代码- 重构`meituan824`类,提高解题代码的质量和可读性。
- 修正`mtp1`和`mtp2`方法,使其能够正确解决对应的问题。
2024-08-25 23:45:01 +08:00
kyriewhluo
ffa1d4435b 代码修订与功能更新:
- 新增策略模式示例:在设计模式包中引入策略模式(StrategyPattern),实现支付策略的灵活选择与执行。
- 单例模式示例更新:优化购物车示例,引入线程安全的单例模式实现,并调整类定义与实例化过程。
- 处理线程池执行异常:在ThreadDemo1中处理线程池执行时的异常情况,确保任务异常(如除零错误)时程序的稳定运行。
- 另外,修正了一些代码中的笔误并进行了格式化处理,以保持代码的清晰与规范。
2024-08-23 18:26:39 +08:00
whaifree
8f722ebb0c feat(leetcode): 添加新的算法题目实现
- 实现LeetCode322 题目:零钱兑换。提供了一个Solution类,使用动态规划算法计算最少的硬币数量。
- 实现LeetCode 377 题目:组合总和IV。提供了一个Solution类,使用动态规划算法计算组合的总数。
- 实现LeetCode 快速排序。提供了一个Solution类,包含一个快速排序算法,能够对数组进行排序。各题目实现均通过测试验证。
2024-08-22 00:43:33 +08:00
whaifree
1acabb1909 refactor(redoAll): 优化动态规划实现及新增解决方案
- 重构`LeetCode209`,添加`Solution1`类,采用前缀和与二分搜索的解法。
- 新增`LeetCode279`,提供两种解决方案,包括一维和二维动态规划方法。
- 对`LeetCode713`进行微调,优化注释和代码清晰度。
- 新增`LeetCode1049`,提出两种动态规划解法,包括完全背包和0-1背包实现。
2024-08-20 23:57:37 +08:00
whaifree
f5ac4f8829 feat(interview): 添加面试题和解决方案
- 新增ByteDance类,包含三道面试题的解决方案。
- 在meituan810类中添加了解决方案和相关代码。
- 重构并优化了RateLimitingRequestSplitter类的代码。

fix(threadpool): 修正CvmResetHandler中线程池参数顺序

重新排列CvmResetHandler中线程池执行器的参数,以确保正确分配任务并防止在任务完成前服务中断。

refactor(code): 移除无用的变量和代码段

在多个类中清理无用的变量和未使用的代码段,以提高代码的可读性和维护性。
2024-08-19 00:50:26 +08:00
whaifree
30db149f1a ```添加演示同步方法的用法以防止实例化
新增的syn类演示了同步方法的用法,以防止在多线程环境中实例化。这通过尝试获取对象锁并打印对象引用的getLock方法以及调用wait的printSyn方法进行演示。
```
2024-08-16 00:35:26 +08:00
whaifree
ddcf0f3888 Merge branch 'master' of https://gitee.com/lkwhai/leet-code 2024-08-15 22:28:07 +08:00
kyriewhluo
32a8ad89b9 实现LRU缓存机制以解决LeeCode146问题
实现了一个基于哈希表和双向链表的LRU(最近最少使用)缓存机制。该机制通过在双向链表的尾部添加最近使用的元素,并从头部移除最近最少使用的元素,以维护一个固定大小的缓存。当缓存满时,通过移除头部元素来腾出空间。此实现支持get和put操作,符合LRU缓存策略的要求。
2024-08-15 15:36:08 +08:00
kyriewhluo
625832361c 实现LRU缓存机制以解决LeeCode146问题
实现了一个基于哈希表和双向链表的LRU(最近最少使用)缓存机制。该机制通过在双向链表的尾部添加最近使用的元素,并从头部移除最近最少使用的元素,以维护一个固定大小的缓存。当缓存满时,通过移除头部元素来腾出空间。此实现支持get和put操作,符合LRU缓存策略的要求。
2024-08-15 15:35:23 +08:00
whaifree
68f6fa4b23 Merge branch 'master' of https://gitee.com/lkwhai/leet-code 2024-08-14 22:29:15 +08:00
whaifree
424329dcca leetcode题解更新:新增96、343、509、968题的动态规划解决方案
本次提交新增了以下几道leetcode题的动态规划解法:
- LeetCode96:实现了一个Solution类,其中numTrees方法使用动态规划计算不同数量的树。
- LeetCode343:提供了integerBreak方法,用动态规划找出给定数字可以拆分出的最大乘积。
- LeetCode509:实现了fib和fib1方法,分别用递归和动态规划计算斐波那契数。
- LeetCode968:实现了一个Solution类,其中minCameraCover方法用动态规划计算给定树中安装监控的最小数量。

这些解决方案均通过了leetcode的测试,为动态规划的学习和应用提供了新的示例。
```
2024-08-14 22:29:05 +08:00
kyriewhluo
cd4c443077 该提交包括以下主要变更:
1. 新增了`SingletonPattern.java`,实现了购物车管理器的单例模式,用于记录商品添加到购物车的信息,并在购买结束后打印出商品清单。这是针对设计模式专题之单例模式的练习。

2. 新增了`LeetCode138.java`,实现了复制一个包含随机指针的链表。这是对链表操作和复制的练习。

3. 新增了`Proxy.java`,实现了动态代理,用于扣费20作为中介费的案例。这是对Java代理模式的实践。

4. 对`TestCacheThreadPool.java`进行了修改,添加了多个线程安全的示例代码,包括单例模式的实现、ConcurrentHashMap的使用、ReentrantLock和Condition的使用等。这是对多线程和并发编程的探索。

这次提交的代码涵盖了设计模式、链表操作、动态代理和并发编程等多个方面,展示了作者在编程领域的广泛兴趣和实践能力。
2024-08-14 20:00:18 +08:00
whaifree
f6d0c4fc63 实现删除链表倒数第N个节点的功能
根据LeetCode19题的要求,实现了删除链表倒数第N个节点的功能。通过两个指针分别定位到第N个节点和链表头,当第一个指针移动到链表末尾时,第二个指针将跳过需要删除的节点,从而实现删除操作。提供了两个实现版本,分别在类Solution和类So中。
2024-08-09 23:49:02 +08:00
whaifree
3aaee55251 leetcode题解更新:452、738、763
添加了新的题解文件:
- [LeetCode452.java](file://src/main/java/cn/whaifree/redo/redo_all_240721/LeetCode452.java):实现了`findMinArrowShots`方法,通过排序和贪心算法求解。- [LeetCode738.java](file://src/main/java/cn/whaifree/redo/redo_all_240721/LeetCode738.java):实现了`monotoneIncreasingDigits`方法,对数字进行特殊处理。
- [LeetCode763.java](file://src/main/java/cn/whaifree/redo/redo_all_240721/LeetCode763.java):实现了`partitionLabels`方法,通过记录每个字符最后出现的位置进行划分。

这些题解展示了多种算法技巧,包括排序、贪心、字符串处理和数组操作,涉及不同的数据结构和问题解决策略。欢迎参考和讨论。
```
2024-08-09 00:01:24 +08:00
whaifree
8b775ad439 feat(redo): 添加LeetCode问题134、135、860、1005的解决方案新增四个Java类,分别对应LeetCode问题134、135、860、1005的解决方案。
这些问题涉及循环数组、糖果分配、零钱兑换和数组操作等不同主题。
每个类包含一个或多个解决特定问题的算法实现,以及相关的测试方法。

- LeetCode134:实现计算加油站问题的解决方案。
- LeetCode135:实现计算糖果分配问题的解决方案。
- LeetCode860:实现柠檬水找零问题的解决方案。
- LeetCode1005:实现数组操作以最大化和的解决方案。

接下来的步骤包括将这些解决方案集成到主项目中,并通过单元测试确保其正确性。
2024-08-07 23:31:21 +08:00
whaifree
a5ac260b63 Merge branch 'master' of https://gitee.com/lkwhai/leet-code 2024-08-06 23:14:18 +08:00
whaifree
967dc09bec feat(redo): 添加LeetCode问题134、135、860、1005的解决方案新增四个Java类,分别对应LeetCode问题134、135、860、1005的解决方案。
这些问题涉及循环数组、糖果分配、零钱兑换和数组操作等不同主题。
每个类包含一个或多个解决特定问题的算法实现,以及相关的测试方法。

- LeetCode134:实现计算加油站问题的解决方案。
- LeetCode135:实现计算糖果分配问题的解决方案。
- LeetCode860:实现柠檬水找零问题的解决方案。
- LeetCode1005:实现数组操作以最大化和的解决方案。

接下来的步骤包括将这些解决方案集成到主项目中,并通过单元测试确保其正确性。
2024-08-06 23:13:55 +08:00
kyriewhluo
5a11845534 此次提交的代码展示了一个简单的字节流处理示例,以及注释掉的并发处理代码。主要目的是通过ByteArrayInputStream从字符串构建字节流,然后使用循环读取字节流并打印出来。虽然提交的代码不包含实际的线程池使用,但通过注释可以看出,原先可能存在对线程池的测试代码。此代码片段作为一个基础,可能用于测试或演示Java中的IO处理和并发编程。 2024-08-06 10:19:27 +08:00
whaifree
536890ab62 "threading examples: 添加计数器、栅栏和未来演示类
添加三个新的演示类来展示不同线程控制机制的使用:- CountDownLatchDemo2:展示如何使用CountDownLatch来同步等待其他线程完成。
- CyclicBarrierDemo2:展示如何使用CyclicBarrier来周期性地等待一组线程完成。
- FutureGetDemo:展示如何使用ExecutorService和Future来异步执行任务并等待它们完成。这些演示类补充了现有的线程演示,提供了更多有关如何在Java中使用高级线程控制结构的实例。"

```添加动态规划解决方案和新的测试用例为特定问题实现动态规划解决方案,并添加新的测试用例以验证代码的正确性。具体包括:

1. 添加LeetCode 45题的两个解:jump和jump1,使用不同的动态规划策略。
2. 添加LeetCode 53题的两个解:使用动态规划的Solution1和Solution2。
3. 添加LeetCode55题的解:使用动态规划的Solution。4. 添加LeetCode 122题的两个解:maxProfit和maxProfit1,分别使用不同的策略。
5. 添加LeetCode376题的解:使用动态规划的Solution。

所有添加的解决方案都通过了相应的测试用例,确保了代码的正确性和有效性。
```
2024-08-05 23:04:30 +08:00
whaifree
8228a4aae3 "threading examples: 添加计数器、栅栏和未来演示类
添加三个新的演示类来展示不同线程控制机制的使用:- CountDownLatchDemo2:展示如何使用CountDownLatch来同步等待其他线程完成。
- CyclicBarrierDemo2:展示如何使用CyclicBarrier来周期性地等待一组线程完成。
- FutureGetDemo:展示如何使用ExecutorService和Future来异步执行任务并等待它们完成。这些演示类补充了现有的线程演示,提供了更多有关如何在Java中使用高级线程控制结构的实例。"

```添加动态规划解决方案和新的测试用例为特定问题实现动态规划解决方案,并添加新的测试用例以验证代码的正确性。具体包括:

1. 添加LeetCode 45题的两个解:jump和jump1,使用不同的动态规划策略。
2. 添加LeetCode 53题的两个解:使用动态规划的Solution1和Solution2。
3. 添加LeetCode55题的解:使用动态规划的Solution。4. 添加LeetCode 122题的两个解:maxProfit和maxProfit1,分别使用不同的策略。
5. 添加LeetCode376题的解:使用动态规划的Solution。

所有添加的解决方案都通过了相应的测试用例,确保了代码的正确性和有效性。
```
2024-08-05 23:04:23 +08:00
whaifree
b20f5f042f update whaifree redo demo更新了whaifree重做演示代码,新增了几个LeetCode题目(46、47、51、491)的解决方案,修改了40题的解法,包括回溯算法的实现和一些测试用例的输出方式。确保了代码的正确性和可读性。 2024-08-04 16:37:30 +08:00
whaifree
567e7f1ff2 Merge branch 'master' of http://42.192.130.83:3000/whaifree/LeetCode 2024-08-02 23:48:01 +08:00
whaifree
28a454f3ae 该commit包含了对四个不同的LeetCode问题的解决方案。每个问题都是通过一个单独的Java类实现的,这些类被添加到cn.whaifree.redo.redo_all_240721包中。具体问题和解决方案如下:
1. [LeetCode40.java](file://src/main/java/cn/whaifree/redo/redo_all_240721/LeetCode40.java):解决组合总和II的问题,通过回溯算法找出所有不重复的组合。
2. [LeetCode90.java](file://src/main/java/cn/whaifree/redo/redo_all_240721/LeetCode90.java):解决子集II的问题,同样使用回溯算法,找出所有可能的不重复子集。
3. [LeetCode131.java](file://src/main/java/cn/whaifree/redo/redo_all_240721/LeetCode131.java):解决分割回文串的问题,提供两种解决方案:动态规划和回溯算法。
4. [LeetCode450.java](file://src/main/java/cn/whaifree/redo/redo_all_240721/LeetCode450.java):解决删除二叉搜索树中的节点的问题,实现了一种删除节点的方法。
5. [LeetCode501.java](file://src/main/java/cn/whaifree/redo/redo_all_240721/LeetCode501.java):找出二叉搜索树中的模式,通过遍历算法找出出现次数最多的元素。6. [LeetCode701.java](file://src/main/java/cn/whaifree/redo/redo_all_240721/LeetCode701.java):解决向二叉搜索树插入节点的问题,提供了一个递归的解决方案。

这些解决方案都是针对LeetCode上的特定问题,目的是提供清晰、高效的代码实现,以便其他开发者可以学习和参考。
2024-08-02 23:47:30 +08:00
kyriewhluo
c14b127911 代码重构:优化查询性能并解决超时问题- 引入线程池来处理并发查询请求,以提升查询性能。
- 使用AtomicInteger保证实例数量统计的安全性。
- 利用CountDownLatch确保所有并行查询任务完成后返回结果。
- 主要针对集群和实例数量查询接口的性能优化,解决超时问题。
2024-08-02 11:01:42 +08:00
whaifree
6320272406 添加了LeetCode题目解答,包括216、222、232、236、257、347、77、94、101、102、105、110题。 2024-07-28 22:04:52 +08:00
whaifree
a91dc82012 新增 LeetCode 题目解答: 206, 287, 225, 28, 2487, 15, 202 2024-07-24 00:11:03 +08:00
whaifree
6783c55d61 Merge remote-tracking branch 'github/master' 2024-07-22 22:55:39 +08:00
whaifree
753858679c 添加了五个LeetCode问题的解决方案,优化了代码结构。
LeetCode15_$
2024-07-22 22:55:24 +08:00