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
HOT100
LeetCode
Hot100
(二分)
35.搜索插入位置题意给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(logn)的算法。题解首先理解二分的做法,我们对于一个有序的序列,每一次都查询他中间的位置,如果当前位置大于他,那就肯定在大于他的那侧,反之就在他小于他的那侧,代码实现如下代码importjava.util.ArrayList;im
asom22
·
2025-06-29 07:54
LeetCode
Hot100
题解
leetcode
算法
职场和发展
LeetCode
Hot100
(回溯)
46.全排列题意给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。题解因为是所有的排列组合,我们每一个位置都取一遍数组的所有元素看看有没有重复的即可代码importjava.util.*;publicclassSolution{publicstaticvoidmain(String[]args){int[]nums={1,2,3};permute(nums);}
asom22
·
2025-06-29 07:50
LeetCode
Hot100
题解
leetcode
算法
职场和发展
力扣 Hot 100 刷题记录 - LRU 缓存
力扣
Hot100
刷题记录-LRU缓存题目描述LRU缓存是力扣
Hot100
中的一道经典题目,题目要求如下:请你设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。
a李兆洋
·
2025-06-29 05:03
leetcode
缓存
算法
算法题刷多少道就可以应付面试手撕了
所以社招同学跳槽,一般就是在你打算找工作的前一两个月把
hot100
刷一刷一般就可以了。毕竟刷算法,对你工作,解bug一点作用也没有针对校招的同学,对算法的考察要求相对高一些,主要根本还是现在供大于
cpp辅导的阿甘
·
2025-06-28 01:50
c++
Leecode
Hot100
复习 两数之和
1.两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。示例1:输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。示例2:输入:nums
源
·
2025-06-25 16:15
算法
leetcode
数据结构
力扣
Hot100
每日N题(9~10)
207.课程表拓扑排序模板/*Dequequeue=newLinkedList>graph;publicbooleancanFinish(intnumCourses,int[][]prerequisites){inNum=newint[numCourses];graph=newArrayList());}for(int[]prerequisite:prerequisites){intv=prere
_铁铁铁铁铁_
·
2025-06-15 03:15
leetcode
算法
职场和发展
leetcode
HOT100
(49.字母异位词分组)
这个题我们可以想到,如果我们将这个字符串数组里面的字符串,每个都排好序,那么如果这两个字符串如果是字母异位词,那么他们排序后就会相等。我们可以创建一个HashMap,遍历字符串数组,然后将遍历取到的字符串转化为字符数组,然后进行排序。排序后再转化为字符串,将其作为key。然后我们再去map集合里面根据这个key去取list集合(如果不存在就创建一个空集合)。之后将当前的字符串存入到list集合中,
CHEN5_02
·
2025-06-14 22:08
leetcode
100
leetcode
算法
职场和发展
力扣
HOT100
之贪心算法:121. 买卖股票的最佳时机
这道题直接构造一个差分数组来做,假设我在第i天买入股票,在第j天卖出股票,那么所获得的利润为prices[j]-prices[i]这一结果可以裂项为(prices[j]-prices[j-1])+(prices[j-1]-prices[j-2])+…+(prices[i+1]-prices[i]),然后我们可以构造一个差分数组diff,diff[i]=prices[i]-prices[i-1]因此
编程绿豆侠
·
2025-06-12 07:48
力扣HOT100
leetcode
贪心算法
算法
力扣
HOT100
之堆:295. 数据流的中位数
这道题第一次做,属于是设计题,没啥思路,我直接去看灵神的题解了,感觉灵神这一题的思路写的还比较通俗易懂。这道题主要是要设计出一种数据结构,能够方便的算出中位数,这里也可以用数组来实现,但是每一次计算中位数都需要将数组进行排序,十分耗时,我们希望设计这样一种结构:当我们需要计算中位数时,应当以O(1)的时间复杂度找到中间或者中间的两位数,并直接计算,对于其他元素我们并不关心。综上,我们可以用两个优先
编程绿豆侠
·
2025-06-12 07:47
力扣HOT100
leetcode
算法
职场和发展
力扣
HOT100
之贪心算法:45. 跳跃游戏 II
这道题刷代码随想录的时候也刷过,本来以为有了上一题55.跳跃游戏的基础,这道题会好做一点,但是依旧想不出来思路,回去看了下自己当时写的博客,没想到今天的感受和当时的感受都一模一样。。。WhatcanIsay?看了下代码随想录的视频和灵神的题解,终于把这个问题彻底弄清楚了。由于这道题保证一定能跳到终点,所以我们只需要考虑如何花最少的次数跳到终点,这里我们定义result,current和next三个
编程绿豆侠
·
2025-06-12 06:40
力扣HOT100
leetcode
贪心算法
游戏
力扣
Hot100
动态规划刷题心法:从入门到精通的蜕变之路
本文将结合力扣
Hot100
经典题目,分享从DP小白到独立解题的蜕变之路。一、刷题心路:从迷茫到顿悟的旅程初次接触力扣
Hot100
时,动态规划就像一座难以逾越的高山。
yy鹈鹕灌顶
·
2025-06-11 15:33
leetcode
动态规划
算法
力扣 Hot 100 刷题记录 - 合并两个有序链表
title:力扣
Hot100
刷题记录-合并两个有序链表date:2025-03-05categories:[算法,力扣]tags:[链表,双指针,递归]力扣
Hot100
刷题记录-合并两个有序链表在力扣(
·
2025-06-11 08:40
LeetCode
Hot100
刷题——三数之和
15.三数之和1.题目描述给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。示例1:输入:nums=[-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]解释:n
·
2025-06-11 07:08
力扣
HOT100
- 35. 搜索插入位置
解题思路:二分法模板classSolution{publicintsearchInsert(int[]nums,inttarget){intleft=0;intright=nums.length-1;while(left>1);if(nums[mid]==target)returnmid;elseif(nums[mid]
·
2025-06-10 19:02
力扣
HOT100
之栈:155. 最小栈
这道题有点难绷,我以为这道题需要用底层的其他容器来实现,甚至想用vector来实现,后面看了下灵神的题解发现我们只需要重点解决在常数时间内检索到最小元素的需求即可。其余的函数我们都可以通过stack自带的函数实现。,那么我们如何实现在O(1)时间内找到栈中的最小元素呢?我们可以维护一个前缀表,前缀表中维护着当前位置及前面插入的元素中的最小元素,因此我们可以定义一个stack>,第一个元素为插入的元
编程绿豆侠
·
2025-06-10 12:20
力扣HOT100
leetcode
java
算法
二叉树 力扣
hot100
热门面试算法题 面试基础 核心思路 背题 将有序数组转换为二叉搜索树 二叉树的层序遍历 验证二叉搜索树 二叉搜索树中第k小的元素 二叉树的右视图 二叉树展开为链表 从前序与中序
二叉树将有序数组转换为二叉搜索树https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/核心思路高度平衡的二叉搜索树定义为:一棵二叉树,其中每个节点的左右子树的高度差不超过1。二叉搜索树的中序遍历结果是有序的。高度平衡的二叉搜索树可以通过递归地选择数组的中点作为树的根节点来构建:中点(nums[mid])作为当
尘土哥
·
2025-06-10 08:54
算法
leetcode
面试
【leetcode刷题之路】面试经典
hot100
(2)——普通数组+矩阵+链表
文章目录5普通数组5.1【动态规划】最大子数组和5.2【排序】合并区间5.3【数组】轮转数组5.4【前缀和】除自身以外数组的乘积5.5【哈希表】缺失的第一个正数6矩阵6.1【哈希表】矩阵置零6.2【模拟】螺旋矩阵6.3【模拟】旋转图像6.4【分治】搜索二维矩阵II7链表7.1【双指针】相交链表7.2【链表】反转链表7.3【双指针】【递归】回文链表7.4【双指针】环形链表7.5【双指针】环形链表II
小天才才
·
2025-06-08 17:17
#
力扣
leetcode
面试
算法
链表
数据结构
第4题 力扣LeetCode 热题 HOT 100(34. 在排序数组中查找元素的第一个和最后一个位置)
第4题力扣LeetCode热题
HOT100
(34.在排序数组中查找元素的第一个和最后一个位置)题目给定一个按照升序排列的整数数组nums,和一个目标值target。
weixin_45440200
·
2025-06-06 09:54
算法
算法
leetcode
数据结构
快速排序
面试
hot100
—65.在排序数组中查找元素的第一个和最后一个位置
文字题解方法一:二分查找直观的思路肯定是从前往后遍历一遍。用两个变量记录第一次和最后一次遇见target的下标,但这个方法的时间复杂度为O(n),没有利用到数组升序排列的条件。由于数组已经排序,因此整个数组是单调递增的,我们可以利用二分法来加速查找的过程。考虑target开始和结束位置,其实我们要找的就是数组中「第一个等于target的位置」(记为leftIdx)和「第一个大于target的位置减
化作晚霞
·
2025-06-06 08:18
算法
数据结构
排序算法
leetcode
java
kafka
力扣
HOT100
之二分查找: 34. 在排序数组中查找元素的第一个和最后一个位置
这道题完全没有思路,直接去看灵神的题解了,这道题的大概思路就是额外定义一个二分查找函数,对于给定数组nums和目标值target,返回第一个大于等于target的元素下标,当返回的下标处的元素恰好等于target时,该下标就是区间的开始位置,若不等于target,则整个数组中都没有target,返回[-1,-1]即可。如果没有返回[-1,-1],则说明数组中至少有一个target,我们需要进一步寻
编程绿豆侠
·
2025-06-06 08:17
力扣HOT100
leetcode
算法
数据结构
力扣
HOT100
之二分查找:74. 搜索二维矩阵
这道题直接a了,我们可以参考上一道题:35.搜索插入位置的思路,详情见我的上一篇博客。将每一行的第一个元素当作一个数组中的元素,然后对这个数组进行二分查找,如果直接找到了target,则直接返回true,否则退出循环的时候left指向应当插入的下标位置,举几个例子:1.当输入为[[1,3,5,7],[10,11,16,20],[23,30,34,60]]target为3,则退出循环时left指向元
编程绿豆侠
·
2025-06-05 08:02
力扣HOT100
leetcode
矩阵
算法
【
Hot100
】LeetCode—45. 跳跃游戏 II
目录题目1-思路2-实现⭐45.跳跃游戏II——题解思路3-ACM实现题目原题连接:45.跳跃游戏II1-思路思路跳跃游戏——>贪心借助curCover记录当前覆盖范围、nextCover记录下一次的覆盖范围①遍历数组,如果i等于当前的覆盖范围,且i未到达终点——>此时res++,更新nowCover2-实现⭐45.跳跃游戏II——题解思路classSolution{publicintjump(i
山脚ice
·
2025-06-03 21:38
算法
leetcode
游戏
java
力扣
HOT100
- 45. 跳跃游戏 II
解题思路:贪心classSolution{publicintjump(int[]nums){intend=0;intmaxPosition=0;intsteps=0;for(inti=0;i
_OLi_
·
2025-06-03 21:07
力扣HOT100
算法题合集
leetcode
算法
java
leetcode
hot100
【LeetCode 45.跳跃游戏 II】java实现
LeetCode45.跳跃游戏II题目描述给定一个非负整数数组nums,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是跳到最后一个位置(数组的最后一个索引)。你可以选择跳过某些步骤,也可以跳负数。示例1:输入:nums=[2,3,1,1,4]输出:2解释:从位置0跳到1(跳1步),然后从位置1跳到3(跳3步)。总共跳了2步。示例2:输入:nums=[3,2
DataCrafter
·
2025-06-03 20:06
LeetCode
Hot100
leetcode
java
算法
贪心算法
【Hot 100】118. 杨辉三角
目录引言杨辉三角我的解题代码优化优化说明♂️作者:海码007专栏:算法专栏标题:【
Hot100
】118.杨辉三角❣️寄语:书到用时方恨少,事非经过不知难!
海码007
·
2025-06-03 20:35
算法
算法
Hot100
leetcode
c++
【Hot 100】763. 划分字母区间
目录引言划分字母区间我的解题一、记录每个字母的最远出现位置二、扫描字符串并进行贪心划分♂️作者:海码007专栏:算法专栏标题:【
Hot100
】763.划分字母区间❣️寄语:书到用时方恨少,事非经过不知难
海码007
·
2025-06-03 20:34
算法
算法
数据结构
Hot100
Leetcode
leetcode
hot100
(day 6)
搜索插入位置做法:二分classSolution{public:intsearchInsert(vector&nums,inttarget){returnlower_bound(nums.begin(),nums.end(),target)-nums.begin();}};classSolution{public:intsearchInsert(vector&nums,inttarget){int
想跑步的小弱鸡
·
2025-06-03 00:10
leetcode
算法
职场和发展
leetcode
hot100
刷题日记——25.翻转二叉树
classSolution{public:TreeNode*invertTree(TreeNode*root){//如果当前节点是空,返回空if(root==nullptr){returnnullptr;}//翻转左子树TreeNode*left=invertTree(root->left);//翻转右子树TreeNode*right=invertTree(root->right);//左右子树交
姬公子521
·
2025-06-02 10:27
力扣刷题专栏
leetcode
算法
c++
leetcode
hot100
刷题日记——26.环形链表
解答:(快慢指针,他俩在环里肯定会有相遇的时候)classSolution{public:boolhasCycle(ListNode*head){ListNode*slow=head;ListNode*fast=head;while(fast&&fast->next){slow=slow->next;fast=fast->next->next;if(slow==fast){returntrue;}
姬公子521
·
2025-06-02 09:53
力扣刷题专栏
leetcode
链表
算法
leetcode
hot100
二叉树(一)
1.二叉树的中序遍历中序遍历(中根遍历):左-根-右顺序,递归实现。注意设置递归终止条件。classSolution{public:voidsearch(TreeNode*root,vector&ans){if(!root)return;search(root->left,ans);ans.push_back(root->val);search(root->right,ans);}vectorin
不想起名字a
·
2025-06-01 17:57
leetcode
算法
职场和发展
leetcode
hot100
刷题日记——34.将有序数组转换为二叉搜索树
FirstBlood:什么是平衡二叉搜索树?二叉搜索树(BST)的性质左小右大:每个节点的左子树中所有节点的值都小于该节点的值,右子树中所有节点的值都大于该节点的值。子树也是BST:左子树和右子树也必须是二叉搜索树。中序遍历有序:对二叉搜索树进行中序遍历,可以得到一个按从小到大顺序排列的有序序列。平衡二叉搜索树(BalancedBST)的性质平衡性:平衡二叉搜索树在满足二叉搜索树所有性质的基础上,
姬公子521
·
2025-06-01 16:16
力扣刷题专栏
leetcode
深度优先
算法
leetcode
hot100
刷题日记——33.二叉树的层序遍历
解题+总结二维vector的初始化方法题目描述情况1:不确定行数和列数情况2:已知行数和列数情况3:已知行数但不知道列数情况4:已知列数但不知道行数题目描述解答:用队列思路都差不多,我觉得对于我自己来说,此题最大的难点在于二维vector的初始化。和之前有行数的初始化不一样的是:此题不确定行数,也不确定列数。那我们就以此题为例,总结一下二维vector的初始化吧。情况1:不确定行数和列数class
姬公子521
·
2025-06-01 00:25
力扣刷题专栏
leetcode
算法
职场和发展
leetcode
hot100
刷题日记——29.合并两个有序链表
解答:方法一:递归递归的边界条件是啥呢?递归别想那么多具体步骤,考虑大步骤,小的递归自己会去做的classSolution{public:ListNode*mergeTwoLists(ListNode*list1,ListNode*list2){//递归比较大小//先考虑递归边界是什么?//如果一条链表遍历到了空节点,说明另一条链表已经排好序了//返回另一条链表if(!list1){returnl
姬公子521
·
2025-05-31 23:18
力扣刷题专栏
leetcode
链表
c++
LeetCode
Hot100
(动态规划)
70.爬楼梯题目:假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?题解:不难发现,每一次都是从i-1或者i-2爬上来的,我们加起来求和即可classSolution{publicintclimbStairs(intn){int[]arr=newint[n+2];arr[1]=1;arr[2]=2;for(inti=3;i>generate(i
asom22
·
2025-05-30 23:27
leetcode
动态规划
算法
LeetCode
Hot100
(矩阵)
73.矩阵置零这边提供n+m的做法以及更少的思路,对于n+m的做法,我们只需要开辟标记当前行是否存在0以及当前列是否存在0即可,做法如下classSolution{publicvoidsetZeroes(int[][]matrix){intarr[]=newint[matrix.length];intbrr[]=newint[matrix[0].length];for(inti=0;ispiral
asom22
·
2025-05-30 08:01
leetcode
矩阵
算法
leetcode
hot100
刷题日记——27.对称二叉树
方法一:递归法classSolution{public:boolcheck(TreeNode*left,TreeNode*right){//左子树和右子树的节点同时是空的是对称的if(left==nullptr&&right==nullptr){returntrue;}if(left==nullptr||right==nullptr){returnfalse;}//检查左右子树的值相不相等,再检查
姬公子521
·
2025-05-30 04:03
力扣刷题专栏
leetcode
算法
职场和发展
leetcode
hot100
题 思路附golang代码
1.两数之和采用哈希map存储数值和索引,在遍历过程中一种情况是找到target-num[i],这个时候直接返回两个索引;另一种情况是没找到target-num[i],这个时候存储当前Num和索引到mapfunctwoSum(nums[]int,targetint)[]int{hashMap:=map[int]int{}fori:=0;iy{returnx}returny}funclengthOf
jfjsefjelfjaj
·
2025-05-30 04:02
leetcode
算法
力扣热题100(附刷题表版)
力扣
hot100
刷题记录表为了方便大家在刷力扣热题100时做记录,整理了下面markdown格式的刷题记录表,不仅方便查看题目,并且,在完成题目后,点击左侧的框勾选,表示此题已经完成,mrakdown源代码
小刘不想改BUG
·
2025-05-30 04:00
力扣刷题
leetcode
算法
java
学习方法
leetcode
hot100
:十三、解题思路大全:多维动态规划(不同路径、最小路径和、最长回文子串、 最长公共子序列、编辑距离)
不同路径一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?提示:1<=m,n<=100题目数据保证答案小于等于2*109思路为什么会考虑用纯dp做,而不是回溯或者dfs或者bfs。因为如果用回溯/DFS/BFS来做的话,每次移动有2种选择(右/下),
shanshandeisu
·
2025-05-29 20:35
LeetCode
leetcode
动态规划
算法
力扣
笔试
python
数据结构
力扣
HOT100
之图论:207. 课程表
这道题第一次做,有向图判断是否有环的思路是完全忘完了,这次没有看灵神的题解,感觉笨猪爆破组的题解更加通俗易懂一些,强烈建议参考他的题解,因为图论本来就很难,光是理解起来就已经很费劲了,没有必要为了代码的简洁和优雅而忽略了代码的可读性。这道题还是用BFS来做,我们需要明确几个点:当一门课程需要前置课程时,这门课程是有入度的,当该门课程的前置课程修完一门,则入度-1,当入度减为0时,说明该门课程的前置
编程绿豆侠
·
2025-05-27 19:15
力扣HOT100
leetcode
图论
算法
leetcode
hot100
:十一、解题思路大全:回溯(全排列、子集、电话号码的字母组合、组合总和、括号生成、单词搜索、分割回文串、N皇后)
我太爱这种回溯了,多做几次就熟了的感觉,别管,已膨胀(全排列给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例1:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2:输入:nums=[0,1]输出:[[0,1],[1,0]]示例3:输入:nums=[1]输出:[[1]]
shanshandeisu
·
2025-05-26 21:01
LeetCode
leetcode
算法
python
笔试
力扣
回溯
leetcode
hot100
刷题日记——17.搜索插入位置
哈喽~第二周刷题开始了,今天这道题虽然属于简单,而且是二分查找模板题,但是我太菜了我感觉有好多可以让我思考的地方。就一起看看这道题目吧~解答:classSolution{public:intsearchInsert(vector&nums,inttarget){//直接二分查找模板intn=nums.size();intleft=0,right=n-1;intmid=0;while(leftnum
姬公子521
·
2025-05-26 21:31
力扣刷题专栏
leetcode
算法
职场和发展
leetcode
hot100
刷题日记——第一周没做好的题目总结
第一题:字母异位词分组第一想法:哈希表哈希表的键为字符串,值存见过的次数键的字符串可以按照英文字母排序好,保证键唯一classSolution{public:vector>groupAnagrams(vector&strs){vector>ans;if(strs.size()==0||strs.size()==1){ans.push_back(strs);returnans;}unordered_
姬公子521
·
2025-05-26 20:56
力扣刷题专栏
leetcode
算法
职场和发展
leetcode
hot100
刷题日记——14.二叉树的最大深度
解答:/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*TreeNo
姬公子521
·
2025-05-25 01:22
力扣刷题专栏
leetcode
算法
职场和发展
【LeetCode
Hot100
】栈篇
前言本文用于整理LeetCodeHot100中题目解答,因题目比较简单且更多是为了面试快速写出正确思路,只做简单题意解读和一句话题解方便记忆。但代码会全部给出,方便大家整理代码思路。20.有效的括号一句话题意验证括号序列有效性。一句话题解用双向队列模拟栈,然后验证即可。classSolution{publicbooleanisValid(Strings){Dequeq=newLinkedListu
_Djhhh
·
2025-05-24 23:08
leetcode
算法
【LeetCode
Hot100
】贪心篇
前言本文用于整理LeetCodeHot100中题目解答,因题目比较简单且更多是为了面试快速写出正确思路,只做简单题意解读和一句话题解方便记忆。但代码会全部给出,方便大家整理代码思路。121.买卖股票的最佳时机一句话题意给定一个数组,问数组中后面的值减前面的值的最大差值。一句话题解每个值都要去和他后面最大的值做差,贪心。classSolution{publicintmaxProfit(int[]pr
_Djhhh
·
2025-05-24 23:08
算法
leetcode
回溯 力扣
hot100
热门面试算法题 面试基础 核心思路 背题 括号生成 单词搜索 分割回文串 N皇后 全排列 子集 电话号码的字母组合 组合总和
回溯括号生成https://leetcode.cn/problems/generate-parentheses/核心思路深度优先搜索(DFS):DFS是探索所有可能路径的方法,这里用于生成括号组合。在每一步中,算法有两个选择:放置左括号'('或右括号')'(受限于当前路径的合法性)。剪枝策略:通过维护当前路径中左括号的数量cnt,算法确保不会放置过多的左括号(不超过n)。通过比较当前位置i与已放置
尘土哥
·
2025-05-24 06:40
算法
leetcode
面试
力扣
HOT100
之二叉树:543. 二叉树的直径
这道题本来想到可以用递归做,但是还是没想明白,最后还是去看灵神题解了,感觉这道题最大的收获就是巩固了我对lambda表达式的掌握。按照灵神的思路,直径可以理解为从一个叶子出发向上,在某个节点处拐弯,然后向下到达另一个叶子,从而我们可以得到由两条链拼接起来的直径(也可能只有一条链)。既然直径一定会在某个节点拐弯,那我们可以枚举每个点,假设在这个节点拐弯,然后分别计算该节点的左右子树最长链(最大深度)
编程绿豆侠
·
2025-05-23 12:40
力扣HOT100
leetcode
深度优先
算法
力扣
HOT100
之二叉树:199. 二叉树的右视图
这道题没啥好说的,首先定义一个向量来保存每一层的最后一个元素,直接用层序遍历(广度优先搜索)遍历二叉树,然后将每一层的最后一个元素加入到这个向量中即可。属于是二叉树层序遍历的模板题。/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),le
编程绿豆侠
·
2025-05-23 12:40
力扣HOT100
leetcode
算法
职场和发展
力扣
HOT100
之图论:200. 岛屿数量
这道题虽然在力扣上没做过,但是之前刷代码随想录的时候在卡码网上刷过,属于是图论的入门模板题,可以参考我之前的这篇博客,里面的思路写的还是挺详细的。我们需要定义一个方向数组,对应着4个移动方向,另外,我们还需要定义dfs函数来探索岛屿,在地图上移动的过程中,当我们遇到一块从未遇到的陆地时,我们就调用dfs函数来探索这块陆地,dfs函数的作用就是将当前陆地所在的岛屿全部探索出来,因此,在主函数中,但凡
编程绿豆侠
·
2025-05-23 12:40
力扣HOT100
leetcode
图论
算法
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他