力扣

语戚4 天前
java·算法·leetcode·面试·线段树·力扣·
力扣 3161. 块放置查询:线段树解法(Java 实现)LeetCode 3161 块放置查询问题是区间管理与数据结构应用的经典标杆题,也是面试中考察区间维护、动态更新与高效查询能力的核心考点。这道题的核心是破解 “在数轴上动态放置障碍物,并快速查询可放置指定长度块的最左侧位置” 的问题,而线段树是解决该问题的直观、通用的进阶思路 —— 它从区间维护的直接实现入手,在时间 / 空间复杂度与实现复杂度上取得了很好的平衡,完美对应了数据结构思维从入门到高阶的成长路径。
填满你的记忆5 天前
算法·动态规划·力扣
《动态规划-基础篇》在算法刷题的道路上,动态规划(Dynamic Programming,简称 DP) 绝对是无数程序员爱恨交织的一座大山。很多人在初学 DP 时,往往会被各种复杂的递推公式、晦涩的转移方程劝退,觉得这种算法高不可攀。
做人求其滴16 天前
c++·算法·面试·职场和发展·力扣
面试经典 150 题 380 2742026/5/21380. O(1) 时间插入、删除和获取随机元素 这题确实把我难住了,看了题解才觉得妙啊。 O(1)复杂度的插入就是插入数组最后 O(1)复杂度的删除就是用到哈希表unordered_map来存数组元素以及数组下标。 如何根据value来查找数组下标? 答:键值对中,<value, 数组下标>
Lsk_Smion18 天前
力扣
Hot100(开刷) 之 LRU(最近最少使用)缓存LRU(Least Recently Used,最近最少使用)是一种经典的缓存淘汰策略。它的核心思想非常符合直觉:如果一个数据在最近一段时间没有被访问过,那么它在将来被访问的可能性也很小。因此,当缓存容量达到上限时,系统会优先淘汰那个“最长时间未被使用”的数据。
玛卡巴卡ldf19 天前
java·数据结构·算法·leetcode·动态规划·力扣
【LeetCode 手撕算法】(多维动态规划)不同路径、最小路径和、最长回文子串、最长公共子序列、编辑距离二维的dp[ ] [ ]思路:记录每一位置的路线数,初始值最上最左设为1,dp[ i ] [ j ]=dp[ i-1 ][ j ]+dp[ i ][ j-1 ]
旖-旎21 天前
c++·算法·深度优先·力扣
深搜练习(单词搜索)(12)79. 单词搜索 - 力扣(LeetCode)我们要在二维网格中找到一条路径,使得路径上的字符按顺序拼成给定的单词。核心思路如下:
玛卡巴卡ldf22 天前
java·数据结构·算法·leetcode·动态规划·力扣
【LeetCode 手撕算法】(动态规划)爬楼梯、杨辉三角、打家劫舍、完全平方数、零钱兑换、单词拆分、最长递增子序列、乘积最大子数组、分割等和子集思路:设置初始值1和2位置的,然后算3注意:返回值里n代表索引,不是数组长度;数组长度要设置为n+1,多一个,方便和i对齐;
玛卡巴卡ldf25 天前
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 中的元素数目。
旖-旎1 个月前
c++·算法·深度优先·力扣
深搜练习(组合总和)(7)39. 组合总和 - 力扣(LeetCode)本题与之前组合问题的核心区别在于:同一个数字可以被无限重复选取。这意味着在递归过程中,我们不能像之前那样用 i+1 强制跳过当前元素,而应该允许继续选择当前元素。因此,递归调用时,下一层的 pos 参数不增加(仍从 i 开始),这样才能重复使用同一数字。
旖-旎1 个月前
c++·算法·深度优先·力扣
深搜练习(组合)(5)77. 组合 - 力扣(LeetCode)本题要求从 [1, n] 中选出 k 个数的所有组合(无序,顺序不限)。我们可以画出决策树:每一层决定是否选取当前数字,并向后推进,确保不重复。采用深度优先搜索(DFS) 回溯框架,用 pos 参数表示当前可以从哪个数字开始选取(每次只能选 ≥ pos 的数),这样能保证组合不重复。
旖-旎1 个月前
c++·算法·力扣·深度优先遍历
深搜练习(电话号码字母组合)(3)17. 电话号码的字母组合 - 力扣(LeetCode)本题要求将输入的数字字符串(仅含 2-9)映射成对应的字母组合,本质是一个多阶段决策问题。我们需要先建立数字到字母的映射表,例如用数组 string mapping[10] = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};,这样下标 2 对应 "abc",3 对应 "def",以此类推。
加农炮手Jinx1 个月前
算法·leetcode·力扣
LeetCode 72. Edit Distance 题解给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。
念越1 个月前
算法·力扣
算法每日一题 Day08|双指针法解决三数之和题目链接:https://leetcode.cn/problems/3sum/description/
木子墨5161 个月前
c++·算法·leetcode·矩阵·力扣·图论
LeetCode 热题 100 精讲 | 矩阵与图论进阶篇:矩阵置零 · 螺旋矩阵 · 旋转图像 · 搜索二维矩阵 II · 岛屿数量 · 腐烂的橘子LeetCode 73. 矩阵置零给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。