力扣

旖-旎13 分钟前
c++·算法·深度优先·力扣·floodfill
《LeetCode 417 太平洋大西洋水流问题 FloodFill DFS 解法》417. 太平洋大西洋水流问题 - 力扣(LeetCode)本题要求找出矩阵中所有能够同时流向太平洋和大西洋的格子。水可以从一个格子流向上下左右相邻的格子,条件是相邻格子的高度 ≤ 当前格子的高度。太平洋位于矩阵的上边界和左边界,大西洋位于下边界和右边界。
旖-旎3 小时前
c++·算法·深度优先·力扣·floodfill
《LeetCode 130 被围绕的区域 FloodFill DFS 解法》130. 被围绕的区域 - 力扣(LeetCode)本题的难点在于直接判断一个 'O' 是否被 'X' 包围比较麻烦。我们可以采用正难则反的思想:
旖-旎12 小时前
c++·算法·力扣·深度优先遍历·floodfill
《LeetCode 695 岛屿的最大面积 FloodFill DFS 解法》695. 岛屿的最大面积 - 力扣(LeetCode)本题与之前 FloodFill 系列的题目思路一致,都是通过深度优先搜索(DFS) 遍历连通区域。但有一个关键区别:不能回溯。之前的回溯问题(如路径搜索)是在探索不同分支后需要恢复现场,而 FloodFill 是“一次性灌溉”——每个格子一旦被访问就永久标记,无需撤销。这就像“弱水三千,只取一瓢”的路径搜索需要尝试多种可能,而岛屿面积则是“我全都要”,把整个连通区域一次性全部找出来,然后记录大小。
旖-旎1 天前
c++·算法·深度优先·力扣·floodfill
《LeetCode 200 FloodFill 岛屿数量DFS解法》200. 岛屿数量 - 力扣(LeetCode)FloodFill(洪水灌溉) 系列的题目,同样可以采取深搜的方式处理,但与常规回溯算法有一个最显著的区别:不需要恢复现场。回溯中的“恢复现场”是为了尝试其他分支,而 FloodFill 是一次性将整个连通区域填满,走过的格子被永久修改(例如将 '1' 改为 '0'),因此不需要再撤销操作。这就像真正的洪水灌溉,水流经过的地方就被覆盖了,不会再变回原样。
旖-旎4 天前
c++·算法·深度优先·力扣
FloodFill(图像渲染)(1)733. 图像渲染 - 力扣(LeetCode)本题要求从给定的起始像素 (sr, sc) 出发,将其颜色改为新颜色 color,然后递归地将与其四方向相邻且颜色相同的像素也改为新颜色,直到所有相连的同色区域都被填充。这本质上是一个连通区域填充问题。
帅小伙―苏4 天前
python·力扣
239. 滑动窗口最大值给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
语戚15 天前
java·算法·leetcode·面试·线段树·力扣·
力扣 3161. 块放置查询:线段树解法(Java 实现)LeetCode 3161 块放置查询问题是区间管理与数据结构应用的经典标杆题,也是面试中考察区间维护、动态更新与高效查询能力的核心考点。这道题的核心是破解 “在数轴上动态放置障碍物,并快速查询可放置指定长度块的最左侧位置” 的问题,而线段树是解决该问题的直观、通用的进阶思路 —— 它从区间维护的直接实现入手,在时间 / 空间复杂度与实现复杂度上取得了很好的平衡,完美对应了数据结构思维从入门到高阶的成长路径。
填满你的记忆15 天前
算法·动态规划·力扣
《动态规划-基础篇》在算法刷题的道路上,动态规划(Dynamic Programming,简称 DP) 绝对是无数程序员爱恨交织的一座大山。很多人在初学 DP 时,往往会被各种复杂的递推公式、晦涩的转移方程劝退,觉得这种算法高不可攀。
做人求其滴1 个月前
c++·算法·面试·职场和发展·力扣
面试经典 150 题 380 2742026/5/21380. O(1) 时间插入、删除和获取随机元素 这题确实把我难住了,看了题解才觉得妙啊。 O(1)复杂度的插入就是插入数组最后 O(1)复杂度的删除就是用到哈希表unordered_map来存数组元素以及数组下标。 如何根据value来查找数组下标? 答:键值对中,<value, 数组下标>
Lsk_Smion1 个月前
力扣
Hot100(开刷) 之 LRU(最近最少使用)缓存LRU(Least Recently Used,最近最少使用)是一种经典的缓存淘汰策略。它的核心思想非常符合直觉:如果一个数据在最近一段时间没有被访问过,那么它在将来被访问的可能性也很小。因此,当缓存容量达到上限时,系统会优先淘汰那个“最长时间未被使用”的数据。
玛卡巴卡ldf1 个月前
java·数据结构·算法·leetcode·动态规划·力扣
【LeetCode 手撕算法】(多维动态规划)不同路径、最小路径和、最长回文子串、最长公共子序列、编辑距离二维的dp[ ] [ ]思路:记录每一位置的路线数,初始值最上最左设为1,dp[ i ] [ j ]=dp[ i-1 ][ j ]+dp[ i ][ j-1 ]
旖-旎1 个月前
c++·算法·深度优先·力扣
深搜练习(单词搜索)(12)79. 单词搜索 - 力扣(LeetCode)我们要在二维网格中找到一条路径,使得路径上的字符按顺序拼成给定的单词。核心思路如下:
玛卡巴卡ldf1 个月前
java·数据结构·算法·leetcode·动态规划·力扣
【LeetCode 手撕算法】(动态规划)爬楼梯、杨辉三角、打家劫舍、完全平方数、零钱兑换、单词拆分、最长递增子序列、乘积最大子数组、分割等和子集思路:设置初始值1和2位置的,然后算3注意:返回值里n代表索引,不是数组长度;数组长度要设置为n+1,多一个,方便和i对齐;
玛卡巴卡ldf1 个月前
java·数据结构·算法·leetcode·力扣
【LeetCode 手撕算法】(栈)有效括号、最小栈、字符串解码、每日温度、柱状图最大矩形思路:遍历每个字符,先把左括号压入栈,到右括号时出栈进行对比。注意:遍历s用toCharArray()来变成单字符数组;
小辉同志1 个月前
c++·力扣·多维动态规划
62. 不同路径多维动态规划:62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
玛卡巴卡ldf1 个月前
java·算法·leetcode·力扣
【LeetCode 手撕算法】(回溯)全排列DFS、子集、电话号码字母组合 九键、组合总和、括号生成、单词搜索、分割回文数思路:全排列回溯 选用DFS递归;结果要全部情况,返回用二维动态列表; 每次存一个结果,并做使用记录,递归条件path满了就return做下一个;path里遍历每一个数字 判断增删 ,递归下一层入口也在这里。
mask哥1 个月前
java·算法·力扣
15种算法模式java实现详解
旖-旎1 个月前
c++·算法·深度优先·力扣
深搜练习(N皇后)(10)51. N 皇后 - 力扣(LeetCode)N皇后问题是回溯算法的经典应用。我们采用逐行放置的策略:每一行只能放一个皇后,因此行冲突自然避免。接下来只需要确保放置的皇后不与之前任何皇后在同一列或同一对角线即可。为此,我们需要维护三个布尔数组(哈希表)来记录被占用的列、主对角线和副对角线。
加农炮手Jinx1 个月前
算法·leetcode·力扣
LeetCode 26. Remove Duplicates from Sorted Array 题解给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
加农炮手Jinx1 个月前
算法·leetcode·力扣
LeetCode 88. Merge Sorted Array 题解给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。