16. 最接近的三数之和 - 力扣 2024-06-04 算法, leetcode, 职场和发展, 数据结构 70人 已看 给你一个长度为n的整数数组nums和 一个目标值target。请你从nums中选出三个整数,使它们的和与target最接近。返回这三个数的和。假定每组输入只存在恰好一个解。
回溯之分割回文串 2024-06-04 算法, leetcode, 职场和发展 71人 已看 思路:直接看回溯函数的内容,首先我们是取段的,如果这一段不行那就往后面加1,直到加道循环结束。如果可以取端,并且取到了最后一段,也就是开始的startIndex大于等于size那么就代表这一条都是回文字符串。然后需要一个判断函数,判断字符串是否为回文字符串,如果是往path里面加。学到的新函数:array.substr( a ,b) a表示字符串的开始,b表示数量 含义:选取字符串array从a开始往后的b个数。难点:这里用到一个很取段的思路,其实和取点的内容差不多,但是取端更难理解。
leetcode155. 最小栈 2024-06-01 算法, java, leetcode, 数据结构, javascript 55人 已看 设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。实现MinStackMinStack()void pop()int top()
LeetCode每日一题:分糖果II | 数组+简单模拟 2024-06-03 算法, leetcode, 职场和发展 67人 已看 在这个问题中,我们需要将指定数量的糖果分配给一队人,每个人按顺序接收糖果,每轮分配的糖果数量依次递增,直到所有糖果分完。。
1961. 检查字符串是否为数组前缀 - 力扣 2024-06-03 c#, 算法, leetcode, 职场和发展, 开发语言 70人 已看 给你一个字符串s和一个字符串数组words,请你判断s是否为words的。字符串s要成为words的s可以由words中的前kk为)个字符串按顺序相连得到,且k不超过。如果s是words的,返回true;否则,返回false。
如何理解:选择排序中交换可能改变相同元素的相对顺序? 2024-06-03 算法, java, leetcode, 排序算法, 数据结构 70人 已看 算法复杂度:两者在最坏和平均情况下的时间复杂度相同,都是 (O(n^2))。但是选择排序在交换次数上通常比冒泡排序少。实现方式:选择排序每次找到最小(或最大)元素放到已排序部分,冒泡排序则是通过多次相邻元素的比较和交换来排序。稳定性:冒泡排序是稳定排序,选择排序是不稳定排序(因为选择排序中交换可能改变相同元素的相对顺序)。适用场景:在实际应用中,两者的使用较少,通常使用更高效的排序算法如快速排序或归并排序。但在数据量小且对交换次数要求高的情况下,可以考虑选择排序。
leetcode62-Unique Paths 2024-06-03 算法, java, leetcode, 职场和发展, 数据结构 73人 已看 每次只能向下或者向右,我们可以用dp[i][j]表示走到当前的路径,那么dp公式就可以为dp[i][j]=dp[i-1][j]+dp[i][j-1] ,最后注意起始条件,即第一行和第一列的路径数只能是1。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。输入:m = 3, n = 7。问总共有多少条不同的路径?
LeetCode-239.滑动窗口最大值 2024-06-03 算法, leetcode, 职场和发展, 数据结构 73人 已看 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。输入:nums = [1,3,-1,-3,5,3,6,7], k = 3。滑动窗口的位置 最大值。输入:nums = [1], k = 1。输出:[3,3,5,5,6,7]返回 滑动窗口中的最大值。
leetcode 743.网络延时时间 2024-06-03 算法, leetcode, 职场和发展 75人 已看 2.如果能够到达所有点,那么这个时候需要判断每一个点到源点的最短距离,然后从这些点中求出最大值。这里就是一个模板题,里面有注释,可以细看。1.从所给起点开始能不能到达所有点;所以用最小路径求解是最划算的选择。思路:迪杰斯特拉最短路径。
力扣174题动态规划:地下城游戏(含模拟面试) 2024-06-03 算法, 面试, leetcode, 游戏, 动态规划 145人 已看 本文详细解读了力扣第174题“地下城游戏”,通过动态规划方法高效地解决了这一问题,并提供了详细的图解和模拟面试问答。
代码随想录算法训练营第三天| LeetCode ● 203.移除链表元素 ● 707.设计链表 ● 206.反转链表 2024-05-31 算法, 链表, leetcode, 职场和发展, windows 137人 已看 数组是在内存中是连续分布的,但是链表在内存中可不是连续分布的。”对于这个问题我有疑问,因为我考研学习到的说其实数组的内存存放也不是连续的,是由索引查找的,只不过看起来时连续的。这题居然都挡住我了。逻辑是简单的,但是就是力扣的提示不太到位,有时候理解不到位。具体怎么样写不出来,还得看一下思路,我是不是脑子不好呀,但我又安慰自己你能做出来但只不过没有那么快那么有效率。其他语言例如Java、Python,就有自己的内存回收机制,就不用自己手动释放了。没有考虑到头节点为空的情况,我还以为很简单,这都卡住我了。
【刷题(16)】子串 2024-06-03 算法, 哈希算法, leetcode, 职场和发展 119人 已看 # 一 子串基础# 二 和位K的子数组## 1 题目## 2 解题思路==前缀和+哈希(两数之和)==- 假如存在区间[left,right],使得在[left,right]这个区间的子数组的和为k。换句话说,就是前right项和减去前left-1项和等于k,即前left-1项和等于前right项和减去k。- 可以这样做,
力扣 56.合并区间 2024-05-29 算法, java, leetcode, 职场和发展, 数据结构 81人 已看 这道题中,要求合并能合并的区间,并且讲合并之后的结果返回,那么考虑1 2 3哪种情况不能合并,显然是3,即遍历到的区间的开始时间大于结果数组中最后一个区间的结束时间,结果数组中存储的区间已经是把当前便利的区间之前能合并的区间都合并了之后的结果,并且由于初始化的时候就将所有待合并区间按照开始时间从小到大排过序了,所以结果数组中保存的合并之后的区间也是从小到大排序的,自然结果数组中最后一个区间才是唯一有可能和当前数组进行合并的数组。一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。