E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
leetcode最优解
Swift 解锁数组可修改场景:
LeetCode
307 高效解法全解析
LeetCode
第307题正是针对这种“可修改+可查询”场景设计的,它要求你设计一个数据结构支持快速更新数组中的某个位置,同
网罗开发
·
2025-06-23 05:00
Swift
swift
leetcode
开发语言
动态规划算法详解(C++)
最优子结构问题的
最优解
包含其子问题的
最优解
(如最短路径问题)。状态转移方程定义子问题之间的关系式,描述如何从已知状态推导新状态。动态规划实
姜太公钓鲸233
·
2025-06-23 04:25
算法
动态规划
c++
【
LeetCode
热题 100】53.最大子数组和详解(Kadane算法)图解 + 动态规划思路解析
原题链接:53.最大子数组和一、题目描述给定一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1]的和最大,为6。二、思路解析:Kadane算法(动态规划)本题目标:找到一个“连续的子数组”,使得它的和最大。
未名编程
·
2025-06-23 04:24
LeetCode热题100详解
算法
leetcode
动态规划
【
LeetCode
#第228题】汇总区间(简单题)
228.汇总区间-力扣(
LeetCode
)给定一个无重复元素的有序整数数组nums。区间[a,b]是从a到b(包含)的所有整数的集合。返回恰好覆盖数组中所有数字的最小有序区间范围列表。
玉~你还好吗
·
2025-06-23 02:09
leetcode
算法
【LC#392&&70】判断子序列&&爬楼梯(dp算法 第一期)
392.判断子序列-力扣(
LeetCode
)给定字符串s和t,判断s是否为t的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。
·
2025-06-23 02:09
【动态规划】
LeetCode
#213 打家劫舍 II(空间复杂度 O(1))
题目链接:
LeetCode
#213打家劫舍II题目描述:#213.打家劫舍II你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。
Code_Yilia
·
2025-06-23 02:39
动态规划
LeetCode
java
动态规划
leetcode
算法
【
LeetCode
】1247. 交换字符使得字符串相同
1247.交换字符使得字符串相同题目描述有两个长度相同的字符串s1和s2,且它们其中只含有字符“x”和“y”,你需要通过「交换字符」的方式使这两个字符串相同。每次「交换字符」的时候,你都可以在两个字符串中各选一个字符进行交换。交换只能发生在两个不同的字符串之间,绝对不能发生在同一个字符串内部。也就是说,我们可以交换s1[i]和s2[j],但不能交换s1[i]和s1[j]。最后,请你返回使s1和s2
Schanappi
·
2025-06-22 17:11
LeetCode刷题
leetcode
算法
数据结构
0编辑距离中等
LeetCode
583. 两个字符串的删除操作
583.两个字符串的删除操作描述给定两个单词word1和word2,找到使得word1和word2相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。分析dp[i][j]dp[i][j]表示以i-1为结尾的字符串word1,和以j-1为结尾的字符串word2,想要达到相等,所需要删除元素的最少次数。动态转移方程word1.charAt(i-1)等于word2.charAt(j-1):dp[
18阿鲁
·
2025-06-22 17:41
动态规划
每日
leetcode
704.二分查找-力扣(
LeetCode
)题目给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果target存在返回下标,否则返回-1。
XiaoyaoCarter
·
2025-06-22 17:08
leetcode训练
leetcode
算法
职场和发展
c++
二分查找
leetcode
332.重新安排行程:优先队列与DFS实现欧拉路径的行程规划
一、题目深度解析与行程规划本质题目描述给定一个机票的字符串二维数组tickets,每个元素是[from,to]的形式,表示从from到to的机票。要求找出从JFK出发的行程,且必须使用所有机票,若存在多种可能的行程,返回字典序最小的那个。核心特性分析图论模型:每个机场是图的节点,机票是图的边,问题转化为在图中寻找一条经过所有边的路径欧拉路径:题目本质是寻找图中的欧拉路径(经过每条边恰好一次的路径)
Musennn
·
2025-06-22 17:08
leetcode刷题详解
深度优先
算法
leetcode
java
算法基础:贪心策略
也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部
最优解
。贪心算法不是对所有问题都能得到整体
最优解
,关键是贪心策略的选择。
Ym影子
·
2025-06-22 15:58
算法
算法
贪心算法
leetcode
贪心算法详解:理解贪心算法看这一篇就够了
排序和选择策略2.4迭代与决策2.5终止条件3.实例详解3.1活动选择问题3.2分数背包问题3.3最小生成树(Kruskal算法)1.贪心算法的基础理论1.1什么是贪心选择性质贪心选择性质是指一个全局
最优解
可以通过一系列局部最优的选择构建出来
爪哇学长
·
2025-06-22 15:27
Java编程基础及进阶
贪心算法
算法
java
python
每日
leetcode
153.寻找旋转排序数组中的最小值-力扣(
LeetCode
)题目已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。
·
2025-06-22 14:17
(
LeetCode
) 169. 多数元素(哈希表 || 二分查找)
题目:169.多数元素方法一:二分法,最坏的时间复杂度0(nlogn),但平均0(n)即可。空间复杂度为0(1)。C++版本:intn=nums.size();intl=0,r=n-1;while(ln/2)break;elsel=mid+1;}returnnums[(l+r)/2];JAVA版本:classSolution{publicintmajorityElement(int[]nums){
岁忧
·
2025-06-22 08:44
LeetCode
LeetCode
面试经典
150
题
C++
JAVA
Go版本
leetcode
散列表
算法
java
c++
go
从“信息茧房”到“内容生态”:一个算法解救了我的推荐系统(3085. 成为 K 特殊字符串需要删除的最少字符数)
今天想和大家聊聊一个我最近在项目中遇到的“甜蜜的烦恼”,以及我是如何从一个看似不相关的
LeetCode
算法题中找到灵感,并最终完美解决问题的。我遇到了什么问题?
满分观察网友z
·
2025-06-22 00:20
算法解构与应用
算法
数据库
day 48 第十章 单调栈part01 739. 每日温度 49503.下一个更大元素II 6.下一个更大元素 I
任务日期:7.23题目一链接:739.每日温度-力扣(
LeetCode
)思路:通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。
ZKang_不会过人
·
2025-06-21 14:43
算法
代码随想录算法训练营第38天 | 322. 零钱兑换 279.完全平方数 139.单词拆分 背包问题总结
|
LeetCode
:322.零钱兑换_哔哩哔哩_bilibili代码随想录classSolution{publicintcoinChange(int[]
ohnoooo9
·
2025-06-21 13:10
代码随想录算法训练营打卡
算法
代码随想录算法训练营第三十八天 | 322.零钱兑换 279.完全平方数 139.单词拆分
322.零钱兑换题目链接:322.零钱兑换-力扣(
LeetCode
)文章讲解:代码随想录视频讲解:动态规划之完全背包,装满背包最少的物品件数是多少?
m0_50413530
·
2025-06-21 13:09
算法
代码随想录算法训练营第38天| 322. 零钱兑换、279.完全平方数、139.单词拆分
模板:今日学习的文章链接和视频链接自己看到题目的第一想法看完代码随想录之后的想法自己实现过程中遇到哪些困难今日收获,记录一下自己的学习时长322.零钱兑换题目链接:322.零钱兑换-力扣(
LeetCode
扛过今天777
·
2025-06-21 13:06
算法
代码随想录算法训练营第38天 | 322. 零钱兑换、279.完全平方数、139.单词拆分
-力扣(
LeetCode
)funccoinChange(coins[]int,amountint)int{ifamount==0{return0}dp:=make([]int,amount+1)forj
百卷-星河
·
2025-06-21 13:06
算法
leetcode
--接雨水(双指针法,动态规划,单调栈)
目录方法一:双指针法方法二:动态规划方法三:单调栈42.接雨水-力扣(
LeetCode
)黑色的是柱子,蓝色的是雨水,我们先来观察一下雨水的分布情况:雨水落在凹槽之间,在一个凹槽的左右都会有两个柱子,两个柱子高度可能相同也可能不同
みずいろ
·
2025-06-21 06:51
算法
leetcode
算法
数据结构
c++
c语言
贪心算法:用C++玩转
最优解
的艺术(实战宝典)
文章目录一、这个算法有点"贪"!二、什么时候该"贪"?1.高频应用场景(敲黑板!)2.适用条件(超级重要!)三、C++实战:背包问题经典案例:部分背包问题贪心策略代码实现代码解读(重点!)四、为什么有人骂它"目光短浅"?贪心算法的局限性避坑指南(亲测有效!)五、进阶技巧:如何设计自己的贪心策略3大设计方向实战心得(血泪经验)六、面试必问:贪心vs动态规划对比表格(背下来!)七、你以为这就结束了?一
digitalpath
·
2025-06-20 17:26
贪心算法
c++
算法
其他
MATLAB 优化类算法的改进方向探索及仿真对比分析
二、优化算法简介1.遗传算法(GA)原理:模拟生物进化过程,通过选择、交叉、变异等操作寻找
最优解
。优点:全局搜索能力强:能够跳出局部
最优解
。并行计算能
鱼弦
·
2025-06-20 14:09
人工智能时代
算法
matlab
人工智能
c++数据结构 有效的数独、矩阵置零
36.有效的数独-力扣(
LeetCode
)(
leetcode
-cn.com)classSolution{public:boolisValidSudoku(vector>&board){introw[9]
艾艾的博客
·
2025-06-20 12:54
c++
数据结构
矩阵
HOT 100 | 189.轮转数组、238. 除自身以外数组的乘积、41. 缺失的第一个正数
一、189.轮转数组189.轮转数组-力扣(
LeetCode
)1.解题思路1.由于k可能很大,为了防止多次重复挪动,所以只需要对其取余,就是最终挪动的位置。
Accept17
·
2025-06-20 12:22
python
算法
leetcode
LeetCode
-73. 矩阵置零-C++
给定一个mxn的矩阵,如果一个元素为0,则将其所在行和列的所有元素都设为0。请使用原地算法。示例1:输入:matrix=[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例2:输入:matrix=[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]代码实现,带详细
工程欣欣
·
2025-06-20 12:20
LeetCode每日一题
leetcode
矩阵
c++
数组中等
LeetCode
6091. 划分数组使最大差为 K
6091.划分数组使最大差为K描述给你一个整数数组nums和一个整数k。你可以将nums划分成一个或多个子序列,使nums中的每个元素都恰好出现在一个子序列中。在满足每个子序列中最大值和最小值之间的差值最多为k的前提下,返回需要划分的最少子序列数目。子序列本质是一个序列,可以通过删除另一个序列中的某些元素(或者不删除)但不改变剩下元素的顺序得到。classSolution{publicintpar
18阿鲁
·
2025-06-20 11:49
leetcode
排序算法
算法
LeetCode
2875.无线数组的最短子数组
给你一个下标从0开始的数组nums和一个整数target。下标从0开始的数组infinite_nums是通过无限地将nums的元素追加到自己之后生成的。请你从infinite_nums中找出满足元素和等于target的最短子数组,并返回该子数组的长度。如果不存在满足条件的子数组,返回-1。示例1:输入:nums=[1,2,3],target=5输出:2解释:在这个例子中infinite_nums=
吃着火锅x唱着歌
·
2025-06-20 11:18
LeetCode
leetcode
算法
数据结构
【经典算法】
LeetCode
215. 数组中的第K个最大元素(Java/C/Python3实现含注释说明,Medium)
个人主页:进朱者赤阿里非典型程序员一枚,记录平平无奇程序员在大厂的打怪升级之路。一起学习Java、大数据、数据结构算法(公众号同名)目录题目描述思路及实现方式一:快速选择排序思路代码实现Java版本C语言版本Python3版本复杂度分析方式二:最小堆(最小优先队列)思路代码实现Java版本C语言版本Python3版本复杂度分析总结相似题目标签(题目类型):数组题目描述给定整数数组nums和整数k,
进朱者赤
·
2025-06-20 11:17
#
面试
#
经典算法
算法
leetcode
数组中的第K个最大元素
数组查找
【
LeetCode
】912. 排序数组(中等)
912.排序数组给你一个整数数组nums,请你将该数组升序排列。示例1:输入:nums=[5,2,3,1]输出:[1,2,3,5]示例2:输入:nums=[5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1arr[j+1]){swap(arr,j,j+1);}}}}//i和j是一个位置的话,会出错publicvoidswap(int[]arr,inti,intj){arr[i]=ar
晴雪月乔
·
2025-06-20 11:47
#
LeetCode
数组
leetcode
排序算法
【贪心算法】
Leetcode
763. 划分字母区间【中等】
划分字母区间给你一个字符串s。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是s。返回一个表示每个字符串片段的长度的列表。示例1:输入:s=“ababcbacadefegdehijhklij”输出:[9,7,8]解释:划分结果为“ababcbaca”、“defegde”、“hijhklij”。每个字母最多出现
FLGB
·
2025-06-20 11:15
算法
贪心算法
leetcode
算法
leetcode
3443. K 次修改后的最大曼哈顿距离 中等
给你一个由字符'N'、'S'、'E'和'W'组成的字符串s,其中s[i]表示在无限网格中的移动操作:'N':向北移动1个单位。'S':向南移动1个单位。'E':向东移动1个单位。'W':向西移动1个单位。初始时,你位于原点(0,0)。你最多可以修改k个字符为任意四个方向之一。请找出在按顺序执行所有移动操作过程中的任意时刻,所能达到的离原点的最大曼哈顿距离。曼哈顿距离定义为两个坐标点(xi,yi)和
圣保罗的大教堂
·
2025-06-20 11:15
模拟
leetcode
leetcode
leetcode
2294. 划分数组使最大差为 K 中等
给你一个整数数组nums和一个整数k。你可以将nums划分成一个或多个子序列,使nums中的每个元素都恰好出现在一个子序列中。在满足每个子序列中最大值和最小值之间的差值最多为k的前提下,返回需要划分的最少子序列数目。子序列本质是一个序列,可以通过删除另一个序列中的某些元素(或者不删除)但不改变剩下元素的顺序得到。示例1:输入:nums=[3,6,1,2,5],k=2输出:2解释:可以将nums划分
·
2025-06-20 11:44
C++二分查找
2.二分查找2.1704.二分查找-力扣(
LeetCode
)给定一个n个元素有序的(升序)整型数组nums和一个目标值t
乾坤未定的黑马
·
2025-06-20 04:24
C++
c++
开发语言
算法
二分查找
【
Leetcode
面试经典150题】88. 合并两个有序数组-Java
一、题目给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初始长度为m+n,其中前m个元素表示应合并的元素,后n个元素为0,应忽略。nums2的长度为n。二、第一
GDJUpUp
·
2025-06-20 03:18
leetcode
算法
java
leetcode
_198_打家劫舍
思路:首先定义一个数组对于dp[i]读作1->i能获取的最大利益,第i个房屋只有"偷"和不"偷"两种情况,分别进行讨论"偷":既然"偷"了i那就肯定不能偷i-1了,但是为了使"偷"的尽可能多除了必须不能"偷"的全要"偷",所以得到第一个部分dp[i]=nums[i]+dp[i-2];不"偷":这就很明显了不"偷"那就是前[i-1]个的情况嘛dp[i]=dp[i-1];综上实现公式应为dp[i]=m
c_ceiling
·
2025-06-20 02:47
leetcode
算法
c++
LeetCode
面试经典150题 88.合并两个有序数组
题目:给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初始长度为m+n,其中前m个元素表示应合并的元素,后n个元素为0,应忽略。nums2的长度为n。思路:从右
爱笑的coder
·
2025-06-20 02:16
算法刷题-数组
leetcode
面试
算法
Leetcode
面试150题 88.合并两个有序数组 简单
系列博客目录文章目录系列博客目录88.合并两个有序数组简单示例1:示例2:示例3:解答88.合并两个有序数组简单给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的
醒了就刷牙
·
2025-06-20 02:45
LeetCode刷题
leetcode
面试
算法
LeetCode
213.打家劫舍II 动态规划详细解法
213.打家劫舍II213.打家劫舍II题目来源题目分析题目难度题目标签题目限制解题思路核心算法步骤代码实现代码解读性能分析测试用例扩展讨论优化写法其他实现总结213.打家劫舍II题目来源213.打家劫舍II题目分析在这个问题中,房屋排列成一个圆形,小偷不能在同一晚上偷窃相邻的房屋,否则会触发警报。给定一个代表每个房屋存放金额的非负整数数组,我们需要计算小偷在不触动警报装置的情况下,能够偷窃到的最
Lentr0py
·
2025-06-20 02:15
LeetCode
算法题
leetcode
动态规划
java
算法
LeetCode
面试150——88合并两个有序数组
LeetCode
面试150——88合并两个有序数组题目难度:简单默认优化目标:最小化平均时间复杂度。Python默认为Python3。
沈小农学编程
·
2025-06-20 02:45
LeetCode
算法
leetcode
职场和发展
面试
(
LeetCode
面试经典 150 题 )88. 合并两个有序数组 (双指针)
题目:88.合并两个有序数组思路:双指针,倒序回填数组nums1,时间复杂度0(n+m),额外的空间复杂度0(1)。C++版本:classSolution{public:voidmerge(vector&nums1,intm,vector&nums2,intn){inti=m-1;intj=n-1;intk=n+m-1;while(i>=0&&j>=0){if(nums1[i]=0){nums1[
岁忧
·
2025-06-20 02:45
C++
JAVA
Go版本
LeetCode
LeetCode
面试经典
150
题
leetcode
面试
算法
c++
java
go
【算法】【C++、贪心、排序】力扣100161. 划分数组并满足最大差限制
它不考虑未来的影响,只考虑当前的局部
最优解
。贪心算法通常用于解决一些具有子结构最优性质的问题,即问题的
最优解
可以由其子问题的
最优解
组合而成。贪心算法的基本步骤如下
扣柚
·
2025-06-19 20:57
力扣题目解析
算法
c++
leetcode
贪心算法
(
LeetCode
面试经典 150 题 ) 27. 移除元素 (双指针)
题目:27.移除元素思路:双指针,时间复杂度0(n)。左指针i左边的都是不等于val的值,右指针j右边都是等于val的值。C++版本:classSolution{public:intremoveElement(vector&nums,intval){inti=0,j=nums.size()-1;while(i<=j){if(nums[i]==val){nums[i]=nums[j];j--;}el
岁忧
·
2025-06-19 20:56
C++
JAVA
Go版本
LeetCode
LeetCode
面试经典
150
题
leetcode
面试
算法
java
go
c++
LeetCode
(python)659. 分割数组为连续子序列
来源:力扣(
LeetCode
)链接:https://
leetcode
-cn.com/p
柚子山茶花
·
2025-06-19 19:24
#
Java刷LeetCode题
leetcode
java
LeetCode
每日一题 1877. 数组中最大数对和的最小值
1877.数组中最大数对和的最小值一个数对(a,b)的数对和等于a+b。最大数对和是一个数对数组中最大的数对和。比方说,如果我们有数对(1,5),(2,3)和(4,4),最大数对和为max(1+5,2+3,4+4)=max(6,5,8)=8。给你一个长度为偶数n的数组nums,请你将nums中的元素分成n/2个数对,使得:nums中每个元素恰好在一个数对中,且最大数对和的值最小。请你在最优数对划分
喜欢下雨所以爱上雷震子
·
2025-06-19 19:54
每日一题
leetcode
算法
贪心算法
划分数组并满足最大差限制
题目链接2966.划分数组并满足最大差限制-力扣(
LeetCode
)解题思路这道题要求我们把给定的整数数组nums划分成多个长度为3的子数组,并且每个子数组中的最大值和最小值的差不能超过整数k。
.wei-upup
·
2025-06-19 19:22
刷题分享
leetcode
算法
数据结构
c++
148. 排序链表
详细题解可参见https://
leetcode
.cn/problems/sort-lis
zmuy
·
2025-06-19 19:19
LeetCode
hot100
链表
数据结构
leetcode
23-合并K个升序链表
leetcode
23思路遍历所有链表收集节点:将每个链表的节点断开其next指针后存入数组对数组进行排序:使用JavaScript的内置sort方法对节点数组按值排序重新连接排序后的节点:遍历排序后的数组
记得早睡~
·
2025-06-19 18:42
leetcode热题100
算法小课堂
链表
数据结构
leetcode
算法
GIS算法基础知识点总结
绪论基本计算方法:穷举法、贪心算法、分治法、动态规划法、迭代法、分支界限法(BranchandBound)穷举法:通过枚举所有可能的解来寻找
最优解
。优点是简单直接,缺点是计算量大,适用于小规模问题。
熊猫_luoul
·
2025-06-19 17:35
GIS算法基础
算法
leetcode
148. 排序链表
方法1:插入方法进行改进classSolution{publicListNodesortList(ListNodehead){/*想法:设置两个指针first,last分别指向当前有序子链表的头和尾节点;并遍历链表,当遍历到的节点值大于last的值时,就将该节点插入到有序子链表表尾值小于first时,插入到子链表表头,处于二者中间时,就遍历进行插入*/if(head==null)returnnul
I_W_S
·
2025-06-19 13:02
leetcode刷题记录
链表
数据结构
leetcode
算法
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他