草庐IT

Leetcode_Master

全部标签

LeetCode 1824. 最少侧跳次数

【LetMeFly】1824.最少侧跳次数力扣题目链接:https://leetcode.cn/problems/minimum-sideway-jumps/给你一个长度为 n 的 3跑道道路 ,它总共包含 n+1 个 点 ,编号为 0 到 n 。一只青蛙从 0 号点第二条跑道 出发 ,它想要跳到点 n 处。然而道路上可能有一些障碍。给你一个长度为n+1 的数组 obstacles ,其中 obstacles[i] (取值范围从0到3)表示在点i 处的 obstacles[i] 跑道上有一个障碍。如果 obstacles[i]==0 ,那么点 i 处没有障碍。任何一个点的三条跑道中 最多有一个

LeetCode:剑指 Offer 58 - II. 左旋转字符串

🍎道阻且长,行则将至。🍓🌻算法,不如说它是一种思考方式🍀算法专栏:👉🏻123一、🌱剑指Offer58-II.左旋转字符串题目描述:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。来源:力扣(LeetCode)难度:简单提示:1示例1:输入:s=“abcdefg”,k=2输出:“cdefgab”🌴解题1.直接使用字符串的substring就是直接截取前后子字符串拼接即可:classSolution{publicStringreverseLeft

Hbuilder git 推代码默认是main分支,合并到master,并删除main分支

起因一个别人创建的新远程仓库,只有master分支,分支上只readme文件。我直接在hbuilder创建了项目,写了首版代码,然后通过hbuilder的easy-git源代码管理push了。完了一看是直接推到了远程main分支。这不行,要想办法把它搞到master分支上。解决那现在分支情况是:远程两个分支main和master,都有各自的代码,相当于独立的两个分支了本地一个分支main,和远程main分支一样的代码操作如下:切换到main分支gitcheckoutmain拉取最新gitpull切换到master分支gitcheckoutmaster把main代码合并到master上gitme

leetcode每日一题:55. 跳跃游戏

系列:贪心算法语言:java题目来源:Leetcode55.跳跃游戏题目给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例1:输入:nums=[2,3,1,1,4]输出:true解释:可以先跳1步,从下标0到达下标1,然后再从下标1跳3步到达最后一个下标。示例2:输入:nums=[3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为3的位置。但该下标的最大跳跃长度是0,所以永远不可能到达最后一个下标。约束条件:10思路:贪心思路:依次寻找最大的数值范围(从始至终都是以开头为标准点进行衡量

[Java·算法·中等] LeetCode21. 合并两个有序链表

人不走空                                          🌈个人主页:人不走空      💖系列专栏:算法专题⏰诗词歌赋:斯是陋室,惟吾德馨目录      🌈个人主页:人不走空      💖系列专栏:算法专题⏰诗词歌赋:斯是陋室,惟吾德馨题目示例示例1示例2示例3提示 详细解读idea上代码运行作者其他作品: 题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例示例1输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2输入:l1=[],l2=[]输出:[]示例3输入:l1=[

LeetCode刷题记录——day1

https://leetcode.cn/problems/h-index/description/?envType=study-plan-v2&envId=top-interview-150注:题目有点难理解,多读几遍可以这样考虑,建立另一个临时数组temp,当第i篇文章被引用citiations[i]次时,令j的temp[j]均加一,也就是现在对于任意j至少有temp[j]篇论文引用次数大于等于j。因为h是最大值,那么遍历temp最后一个满足temp[j]>=j的j就是所求。当然,以上的时间复杂度和空间复杂度都比较大,另一种好的方法是先排序后遍历。先将数组citiations进行排序,如何从

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习三(leetcode真题剖析)

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习三01.字母大小写全排列02.优美的排列03.N皇后04.有效的数独01.字母大小写全排列题目链接:https://leetcode.cn/problems/letter-case-permutation/给定一个字符串s,通过将字符串s中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。以任意顺序返回输出。示例1:输入:s="a1b2"输出:["a1b2","a1B2","A1b2","A1B2"]示例2:输入:s="3z4"输出:["3z4","3Z4"]提示:1s由小写英文字母、大写英文字母和数字组成思路在处理

动态规划全总结(涵盖所有题型,左神思路全讲解+LeetCode)

动态规划是对暴力递归算法的优化,主要是通过数组记录的方法,优化掉一些重复计算的过程。总结下动态规划的过程:(1)抽象出一种“试法”,递归解决问题的方法,很重要(2)找到“试法”中的可变参数,规划成数组表,可变参数一般是0维的,有几个可变参数就是几维的表(3)找到basecase,问题最基础的解,填入数组表中(4)根据“试法”中的递归过程,和basecase已经填到数组表的值,继续填表(5)根据问题给定的参数,找到数组中对应的位置,就是最终的解然后通过几个例子具体看一下动态规划是怎么玩的。 设计模式总结:递归函数的可变参数不能是数组类型,一个可变参数就是一维表,两个可变参数就是二维表。常用总结:

leetcode刷题日记:LCR 142. 训练计划 IV,876. 链表的中间结点

今天的两道题涉及到的知识点是双指针以及合并链表的一些技巧(我是使用的迭代法的,看了题解之后才搞明白,希望能给大家讲清楚)1.LCR142.训练计划IV题目描述:思路分析:这个链表很特殊,它的顺序是升序的,已经给你排好了,现在要求是合并之后再按照升序进行重新组装。一开始的时候我想直接先用给出的这两个链表来操作,先对一个链表进行循环,把另外一个链表中的节点的值与其比较,然后插到中间。但是这样的思路的问题在于最后我们是要返回一个链表的头结点的,但是我们在遍历的时候,会将头结点向后移,即使用另外一个变量来存储原来链表的头结点,指针在进行操作的时候还是会把这个新变量一同进行变化(昨天的文章里面谈到了这件

git如何将分支名由main改为master

要将分支名从“main”改为“master”,请按照以下步骤操作:首先,确保你已经在要重命名的分支上。通常,这是“main”分支。要检查当前分支,请运行以下命令:gitbranch这将显示所有本地分支,当前分支前会有一个星号(*)。如果你需要切换到“main”分支,请运行以下命令:gitcheckoutmain现在,你可以使用gitbranch命令将“main”分支重命名为“master”。运行以下命令:gitbranch-mmainmaster这将把当前分支(即“main”分支)重命名为“master”。如果你有远程仓库,并且希望将重命名后的分支推送到远程仓库,请运行以下命令:gitpush