
算法
文章平均质量分 53
看个人简介有交流群(付费)
交流群+V:rivan91ds
展开
-
leetcode-16. 最接近的三数之和
通过排序加双指针法,我们能够高效地解决三数之和最接近(3Sum Closest)的问题。该方法利用数组的有序性,通过双指针在固定一个元素的基础上快速查找剩余两个元素,以找到最接近目标值的和。关键步骤回顾:排序数组,简化搜索过程。固定第一个元素,使用双指针查找剩余两个元素。在查找过程中持续更新最接近的和。合理移动指针以优化搜索效率。掌握此类技巧,不仅有助于解决类似的编程问题,还能加深对双指针法和排序在算法中的应用理解。原创 2025-02-19 04:08:23 · 622 阅读 · 0 评论 -
leetcode-146.LRU缓存(易理解)
为了实现一个满足 LRU(最近最少使用)缓存约束的数据结构,我们需要在 (O(1)) 时间复杂度内完成get和put操作。原创 2024-12-11 18:12:18 · 545 阅读 · 0 评论 -
leetcode-54.螺旋矩阵(易理解)
要按照顺时针螺旋顺序遍历一个矩阵,可以通过逐步缩小矩阵的边界来实现。原创 2024-12-11 18:10:56 · 306 阅读 · 0 评论 -
leetcode-54.螺旋矩阵(易理解)
要按照顺时针螺旋顺序遍历一个矩阵,可以通过逐步缩小矩阵的边界来实现。原创 2024-12-11 17:08:14 · 447 阅读 · 0 评论 -
leetcode-215.数组中的第k个最大元素
除了快速选择算法之外,还有其他方法可以用来找到数组中第 (k) 个最大的元素,不过它们的时间复杂度可能会有所不同。原创 2024-12-11 16:19:28 · 278 阅读 · 0 评论 -
leetcode-3.无重复字符的最长子串(易理解)
要找到一个字符串中不含重复字符的最长子串的长度,可以使用滑动窗口技术。这种方法可以在 O(n) 时间复杂度内解决问题,其中 n 是字符串的长度。原创 2024-12-10 23:28:05 · 428 阅读 · 0 评论 -
leetcode-88.合并两个有序数组(易理解)
为了合并两个已排序的数组nums1和nums2,并将结果存储在nums1中,我们可以采用双指针的方式从后向前进行合并。这种方法的好处是可以避免在nums1中移动元素,从而提高效率。原创 2024-12-09 18:19:50 · 488 阅读 · 0 评论 -
leetcode-55.通配符匹配
【代码】leetcode-55.通配符匹配。原创 2024-12-05 22:14:02 · 310 阅读 · 0 评论 -
leetcode-10.正则表达式匹配
不匹配字符,将该组合扔掉,不再进行匹配。- 如果当前字符 `s[i]` 能够匹配 `p[j-1]`(即 `p[j]` 是 `*`,而 `p[j-1]` 是与 `s[i]` 匹配的字符),我们可以认为 `p[j-1]*` 这个组合匹配了 `s[i]`,然后继续尝试匹配 `s[i-1]`,`s[i-2]` 等等。- 具体来说,`f[i][j] = f[i][j-2]` 表示我们不使用 `p[j-1]*`,直接看 `p` 的前 `j-2` 个字符是否能匹配 `s` 的前 `i` 个字符。原创 2024-12-04 12:20:13 · 811 阅读 · 0 评论 -
算法-左神
排序简单选择排序class Solution { public void selectionSort(int[] arr) { if (arr == null || arr.length < 2) { return; } for (int i = 0; i < arr.length - 1; i++) { int minIdx = i; for (int j = i原创 2022-05-19 00:26:40 · 158 阅读 · 0 评论