LeetCode
文章平均质量分 58
努力努力再努力@_@
KEEP CODING ......
展开
-
(中等)LeetCode 328. 奇偶链表 Java
对于每个链表,每个节点是奇数节点或者偶数节点。头节点是奇数节点,头节点的后一个节点是偶数节点,相邻节点的奇偶性不同。因此可以将奇数节点和偶数节点分离成奇数链表和偶数链表,然后将偶数链表连接在奇数链表之后,合并后的链表即为结果链表。原始链表的头节点head也是奇数链表的头节点以及结果链表的头节点,head的后一个节点是偶数链表的头节点。最后令odd.next=evenHead,将偶数链表连接在奇数链表之后,即完成了奇数链表和偶数链表的合并,结果链表的头节点仍然是head。如果链表为空,则直接返回链表。原创 2023-07-17 20:05:14 · 295 阅读 · 0 评论 -
(中等)LeetCode146 LRU 缓存 Java
上述各项操作中,访问哈希表的时间复杂度为O(1),在双向链表的头部添加节点,在双向链表的尾部删除节点的复杂度也为O(1)。而将一个节点移动到双向链表的头部,可以分成【删除该节点】和【在双向链表的头部添加节点】两步操作,都可以在O(1)的时间内完成。本题有两种实现操作,需要使用到一个哈希表和一个双向链表。在Java语言中,有一种结合了哈希表和双向链表的数据结构,LinkedHashMap。LRU缓存机制可以通过哈希表辅以双向链表实现,需要使用。维护所有在缓存中的键值对。原创 2023-07-17 19:14:25 · 358 阅读 · 0 评论 -
(中等)LeetCode 3. 无重复字符到的最长子串 Java
当我们一次递增地枚举子串的起始位置,会发现子串的结束位置也是递增的,原因在于,假设选择字符串中的第k个字符作为起始位置,并且得到了不包含重复字符的最长子串的结束位置为。在左指针向右移动的时候,从哈希集合中移除一个字符,在右指针向右移动时,向哈希集合中添加一个字符。的字符显然是不重复的,并且由于少了原来的第k个字符,可以尝试继续增大。,那么,从第k+1个字符作为起始位置时,首先从k+1到。,那么,其中最长的那个字符串即为答案。,直到右侧出现重复字符为止。原创 2023-07-16 13:17:59 · 415 阅读 · 0 评论 -
(中等)剑指Offer II 062.实现前缀树 Java
若搜索到了前缀的末尾,就说明字典树中存在该前缀。此外,若前缀末尾对应的节点的isEnd为真,则说明字典树中存在该字符串。重复以上步骤,直到处理字符串的最后一个字符,然后将当前节点标记为字符串的结尾。从字典树的根开始,插入字符串。从字典树的根开始,查找前缀。重复以上步骤,直到返回空指针或搜索完前缀的最后一个字符。原创 2023-07-16 10:12:49 · 308 阅读 · 0 评论 -
(简单)设计哈希集合 Java
开辟一个大小为base的数组,数组的每个位置是一个链表。当计算出哈希值之后,就插入到对应位置的链表中。依据提示创建了长度为10^6+1的数组set,如果向set中添加了某个数字x,则将set[x]置为1。设计哈希表大小为base,则可以设计一个简单的哈希函数:hash(x) = x mod base。由于该方法使用整数除法作为哈希函数,为了尽可能避免冲突,应当将base取为一个质数。方法,也可以利用链表来构建set。原创 2023-07-16 09:29:58 · 113 阅读 · 0 评论 -
(简单)剑指Offer 21. 调整数组顺序使奇数位于偶数前面 Java
记数组nums的长度为n。从先nums左侧开始遍历,如果遇到的是奇数,就表示这个元素已经调整完成,继续从左往右遍历,直到遇到一个偶数。然后从nums右侧开始遍历,如果遇到的是偶数,就表示这个元素已经调整完成了,继续从右往左遍历,直到遇到一个奇数,将换这个偶数和奇数的位置,并且重复两边的遍历,直到在中间相遇,nums调整完成。原创 2023-07-14 15:31:39 · 257 阅读 · 0 评论 -
(简单)剑指Offer II 056. 二叉搜索树中两个节点的和 Java
计算下一个位置时,首先将位于栈顶的当前节点从栈中弹出,此时,首先判断当前节点是否存在右子节点,如果存在,那么将右子节点的最左子树加入到栈中;在方法三中,是在中序遍历得到的数组上进行双指针,这样需要消耗O(n)的空间,实际上可以将双指针的移动理解为在树上的遍历过程的一次移动。具体地,使用两个指针分别指向数组的头尾,当两个指针指向的元素之和小于k时,让左指针右移;当两个指针指向的元素之和大于k时,让右指针左移;二叉搜索树的中序遍历是升序排列的,可以将该二叉搜索树的中序遍历的结果记录下来,得到一个升序数组。原创 2023-07-14 15:14:37 · 115 阅读 · 0 评论 -
(中等)LeetCode 剑指OfferII 074. 合并区间
用数组merged存储最终的答案。原创 2023-07-13 20:49:12 · 218 阅读 · 0 评论 -
【哈希表/字符串-简单】LeetCode 205 同构字符串 Java
从左至右遍历两个字符串的字符,不断更新两张哈希表,如果出现冲突(即当前下标index对应的字符s[index]已经存在映射且不为t[index]或当前下标index对应的字符t[index]已经存在映射且不为s[index])时,说明两个字符串无法构成同构,返回false。需要判断s和t每个位置上的字符是否都一一对应,即s的任意一个字符被t中唯一的字符对应,同时t的任意一个字符被s中唯一的字符对应。这也被称为【双射】的关系。如果遍历结束没有出现冲突,则表明两个字符串是同构的。原创 2023-07-13 11:37:51 · 168 阅读 · 0 评论 -
【字符串 简单】LeetCode 14. 最长公共前缀 Java
用minLength表示字符串数组中的最短字符串的长度,则可以在[0,minLength]的范围内通过二分查找得到最长公共前缀的长度,每次取查找范围的中间值mid,判断每个字符串的长度为mid的前缀是否相同,如果相同则最长公共前缀的长度一定大于或等于mid,如果不相同则最长公共前缀的长度一定小于mid,通过上述方式将查找范围缩小一半,直到得到最长公共前缀的长度。依次遍历字符串数组中的每一个字符串,对于每个遍历到字符串,更新最长公共前缀,当遍历完所有的字符串以后,即可得到字符串数组中的最长公共前缀。原创 2023-07-11 20:30:12 · 970 阅读 · 0 评论 -
LeetCode 每日一题 2023-06-30 2490. 回环句 Java
【代码】LeetCode 每日一题 2023-06-30 2490. 回环句 Java。原创 2023-06-30 13:17:39 · 323 阅读 · 0 评论 -
LeetCode 每日一题 2023-04-29 2423. 删除字符使频率相同(Java实现)
遍历该数组,尝试将某一位置上的非零元素值减一,在将减一后的,所有非零元素放入set集合去重,如果set集合的大小为1,那么就说明是满足条件的返回true。题目中提到,只有小写字母,可以考虑开辟长度为26的整型数组,记录每一个字母出现的次数,如果数组元素是0,那么就说明字符串中没有出现该字母。注意,在对某一数组元素减一后,如果set集合的大小不为1,记得要把那个位置上的数再加一,变回原来的状态。当遍历了所有元素后,都没有发现符合条件的情况,则返回false。原创 2023-04-29 20:16:36 · 74 阅读 · 0 评论 -
【LeetCode每日一题 / Java实现】2023-01-29 2315. 统计星号(简单)
字符串原创 2023-01-29 11:09:13 · 126 阅读 · 0 评论 -
【LeetCode数组篇 / Java实现】2037. 使每位学生都有座位的最少移动次数(简单)
LeetCode数组篇原创 2023-01-28 10:27:20 · 115 阅读 · 0 评论 -
【LeetCode数组篇 / Java实现】1874. 两个数组的最小乘积和(中等)
LeetCode数组篇原创 2023-01-28 10:07:06 · 149 阅读 · 0 评论 -
【LeetCode每日一题】2023-01-27 兼具大小写的最好英文字母(简单)
字符串原创 2023-01-27 19:22:12 · 72 阅读 · 0 评论 -
【LeetCode数组篇 / 异或运算 / Java实现】1720. 解码异或后的数组(简单)
考察异或运算原创 2023-01-27 18:46:59 · 155 阅读 · 2 评论 -
【LeetCode数组篇 / Java实现】1929. 数组串联(简单)
LeetCode数组篇 数组拷贝原创 2023-01-27 16:35:56 · 82 阅读 · 0 评论 -
【LeetCode数组篇 / Java实现】1476. 子矩形查询
LeetCode 1476 子矩阵查询原创 2023-01-26 12:04:05 · 63 阅读 · 0 评论 -
【LeetCode数组篇 / Java实现】1282. 用户分组(HashMap的应用)
LeetCode 1282 用户分组 HashMap的使用原创 2023-01-26 11:54:14 · 859 阅读 · 0 评论 -
【LeetCode数组篇 / Java实现】2391. 收集垃圾的最少总时间
LeetCode数组篇 2391. 收集垃圾的最少总时间原创 2023-01-25 13:46:56 · 93 阅读 · 0 评论 -
【LeetCode数组篇 / Java实现】2545. 根据第 K 场考试的分数排序
二维数组针对某一列进行排序原创 2023-01-25 11:22:01 · 115 阅读 · 0 评论 -
【LeetCode数组篇 / C++实现 / Java实现】1828. 统计一个圆中点的数目
LeetCode 1828 统计一个圆中点的数目原创 2023-01-20 11:31:40 · 98 阅读 · 0 评论 -
【LeetCode数组篇 / C++实现 / Java实现】2535. 数组元素和与数字和的绝对差
LeetCode 数组篇原创 2023-01-20 10:44:19 · 78 阅读 · 0 评论 -
【C++】【LeetCode数组】2500. 删除每行中的最大值
LeetCode 2500. 删除每行中的最大值原创 2023-01-11 16:31:00 · 174 阅读 · 0 评论 -
【C++】【LeetCode数组】1920. 基于排列构建数组
LeetCode 1920. 基于排列构建数组原创 2023-01-11 10:01:12 · 77 阅读 · 0 评论 -
【C++】【数组】807. 保持城市天际线
LeetCode 807. 保持城市天际线原创 2023-01-06 11:52:26 · 130 阅读 · 0 评论 -
【C++】【Leetcode数组】1769. 移动所有球到每个盒子所需的最小操作数
1769. 移动所有球到每个盒子所需的最小操作数原创 2023-01-06 11:14:42 · 49 阅读 · 0 评论 -
【C++】【LeetCode数组】1570. 两个稀疏向量的点积
LeetCode 1570. 两个稀疏向量的点积 C++实现原创 2023-01-03 10:06:43 · 156 阅读 · 0 评论 -
【C++小白刷题记录】【LeetCode数组】2011.执行操作后的变量值
Leetcode 2011. 执行操作后的变量值 遍历Vector原创 2023-01-02 20:06:20 · 70 阅读 · 0 评论 -
【LeetCode每日一题】2022-11-01 1662. 检查两个字符串数组是否相等 Java实现
【LeetCode每日一题】2022-11-01 1662. 检查两个字符串数组是否相等 Java实现原创 2022-11-01 11:10:59 · 86 阅读 · 0 评论 -
【LeetCode每日一题】【字符串/双指针】2022-10-31 481. 神奇字符串 Java实现
【LeetCode每日一题】【字符串/双指针】481. 神奇字符串 Java实现原创 2022-10-31 11:07:31 · 652 阅读 · 0 评论 -
【LeetCode】【字符串】【位运算实现字母大小写转换】709. 转换成小写字母 Java实现
【LeetCode】【字符串】【位运算实现字母大小写转换】709. 转换成小写字母 Java实现原创 2022-10-30 10:58:52 · 343 阅读 · 0 评论 -
【LeetCode每日一题】【字符串/回溯/DFS/BFS/位运算】2022-10-30 784. 字母大小写全排列 Java实现
【LeetCode每日一题】【字符串/回溯/DFS/BFS/位运算】2022-10-30 784. 字母大小写全排列 Java实现原创 2022-10-30 13:33:32 · 377 阅读 · 0 评论 -
【LeetCode每日一题】【字符串/数组】2022-10-29 1773. 统计匹配检索规则的物品数量 Java实现
【LeetCode每日一题】【字符串/数组】2022-10-29 1773. 统计匹配检索规则的物品数量 Java实现原创 2022-10-29 08:19:01 · 101 阅读 · 0 评论 -
【LeetCode每日一题】【单调栈】2022-10-28 907. 子数组的最小值之和 Java实现
单调栈原创 2022-10-28 11:02:20 · 1214 阅读 · 0 评论 -
【LeetCode每日一题】【数组】2022-10-27 1822. 数组元素积的符号 Java实现
LeetCode每日一题 2022-10-27原创 2022-10-27 10:34:25 · 103 阅读 · 0 评论 -
【LeetCode - 第316场周赛】【暴力 / 滑动窗口】2447. 最大公因数等于 K 的子数组数目 Java实现
【LeetCode - 第316场周赛】【暴力 / 滑动窗口】2447. 最大公因数等于 K 的子数组数目 Java实现原创 2022-10-27 10:00:19 · 666 阅读 · 0 评论 -
【LeetCode - 第316场周赛】【字符串】2446. 判断两个事件是否存在冲突 Java实现
【LeetCode - 第316场周赛】2446. 判断两个事件是否存在冲突 Java实现原创 2022-10-27 08:48:11 · 126 阅读 · 0 评论 -
【LeetCode每日一题】【单调队列】2022-10-26 862. 和至少为K的最短子数组 Java实现
LeetCode每日一题 2022-10-26原创 2022-10-26 10:58:57 · 323 阅读 · 0 评论