Commit Graph

163 Commits

Author SHA1 Message Date
64ea4c89f0 Default Changelist
AioServer.java
SelfDefiniteThreadPool.java
2024-09-28 12:31:53 +08:00
574e99f373 Default Changelist
LCR001.java
LeetCode11.java
LeetCode277.java
LeetCode279.java
LeetCode322.java
LeetCode713.java
LeetCode1049.java
Tc.md
2024-09-27 20:42:08 +08:00
61d92b60d5 feat: 添加了LeetCode96, LeetCode416, LeetCode53, LeetCode135, LeetCode219, LeetCode406, LeetCode36四个Java类,分别对应LeetCode题目中的解法;
feat: 添加了FutureRelative类,用于演示Java中的Future和CompletableFuture用法;
feat: 添加了Solution1和Solution两个类,分别对应LeetCode36题目的两种解法;

Default Changelist
AffinityThreadPoolTest.java
FutureRelative.java
LeetCode36.java
LeetCode45.java
LeetCode53.java
LeetCode96.java
LeetCode134.java
LeetCode135.java
LeetCode219.java
LeetCode406.java
LeetCode416.java
LeetCode763.java
LeetCode968.java
LeetCode1005.java
P1.java
SocketDemo.java
2024-09-27 11:00:46 +08:00
2219024e1b 文档添加关于字符串、字节和void数据类型的说明
在NumPy文档中,常规介绍部分现在包含了关于字符串、字节和void数据类型的信息,以及现有的数值类型。

Default Changelist
LC15.java
LeetCode40.java
LeetCode55.java
LeetCode94.java
LeetCode131.java
LeetCode209.java
LeetCode222.java
LeetCode276.java
p1.java
2024-09-24 22:59:28 +08:00
6d49b27147 Default Changelist
AioServer.java
FactoryAndStrategy.java
LeetCode25.java
LeetCode49.java
LeetCode61.java
LeetCode71.java
LeetCode73.java
LeetCode114.java
LeetCode141.java
LeetCode228.java
LeetCode289.java
LeetCode290.java
LeetCode703.java
SingletonPattern.java
ThreadDemo1.java

AndStrategy类,使用策略模式优化支付方式。

这些更改包括对单例模式的实现、线程控制的改进、LeetCode问题的解决以及设计模式的应用。
2024-09-24 10:09:45 +08:00
33dffb6b07 文档更新:字符串、字节和void数据类型信息已添加到NumPy文档的常规介绍部分,与现有的数值类型信息并列。
错误修复:用户创建操作现在将正确分配UUID,由于SQL查询中参数顺序的问题已得到解决,确保用户可以成功创建。

功能优化:EntityClass的重新加载机制将遵循`flush`参数的指示,防止在刷新设置为false时刷新新实体。
2024-09-21 23:21:56 +08:00
b8cbf111fe ```添加新的LeetCode字符串和数组问题解决方案
解决了新的LeetCode字符串和数组问题,包括字符串转换、罗马数字转换、插入区间、寻找最长公共前缀和判断回文字符串。这些解决方案涵盖了各种字符串操作和数组处理技巧,体现了在面对不同算法挑战时的灵活性和效率。
```
2024-09-19 01:04:12 +08:00
93d200414a 文档添加关于字符串、字节和void数据类型的说明
在NumPy文档中,常规介绍部分现在包含了关于字符串、字节和void数据类型的信息,以及现有的数值类型。
2024-09-18 00:44:23 +08:00
093947705e 代码重构与新增解决方案:
-重构`LeetCode5`、`LeetCode15`与`LeetCode53`,优化代码结构并引入新测试用例。
- 在`LeetCode80`与`LeetCode88`中添加新解法,提升数组操作效率。
- 为`LeetCode124`、`LeetCode146`以及`LeetCode189`等题新增解决方案,丰富算法实现。
- 在`LeetCode274`、`LeetCode380`中引入新思路,提高算法效率。

所有新增代码均包含单元测试,保证代码质量与可验证性。
2024-09-16 19:38:34 +08:00
a75259b346 更新 LCR155.java、LeetCode207.java、LeetCode210.java 和 LeetCode583.java 文件,进行代码优化和逻辑调整。 2024-09-16 10:20:05 +08:00
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