草庐IT

Leetcode

全部标签

LeetCode46全排列(回溯入门)

欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos题目描述难度:中等给定一个不含重复数字的数组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]]个人回溯和46题的理解在很多刷题文章和书籍中,此题都被用做回溯算法的第一题,可见该题很有代表性,搞定此题意味

【leetcode刷题】--- 我遇到一道很坏很坏的题~

🔥系列专栏:【Leetcode】刷题与总结目录前言题目普通解法🌱思路一🌱思路二其他解法🌱思路三🌱思路四写在最后前言今天在Leetcode上刷题,看到一道题很有趣。我乍一看,没有思路,但是仔细想了想,还是没思路。。。。哈哈,开个玩笑。当我写出后解法后,系统老是提醒超出时间限制,太难了,努力想了好久,优化解法后终于通过了!还挺有成就感。后来在官方的解法中,我又学到了其他的解题方法,解题的思路非常棒,所以就有了这篇文章,想和大家分享一下。题目✨描述:给定一个数组height,数组里有n个非负整数每个元素都表示一个宽度为1的柱子的高度现在让我们来计算按此排列的柱子,下雨之后能接多少雨水。🔋例如:输入:

leetcode刷题之消失的数字(超详解刷爆力扣)

大家好啊,我是小生啊🙈🙈🙈从今天开始小生将会和大家一起刷题,从今天开始小生也会开辟新的专栏。😜😜😜下一篇比这篇质量高多啦,哈哈,大家快来看啦~~~多种方法刷爆力扣———轮转数组🥳🥳🥳.🌞🌞🌞让我们多种方法解题练习,刷爆力扣,冲冲冲力扣练习:消失的数字🏃🏃🏃一.🏠题目描述二.🏠题目分析三.🏠解决方法1.🚀思路一:先排序再查找2.🚀思路二:逆推相减3.🚀思路三:异或运算求解四.🏠代码实现1.🚀方法一代码详解2.🚀方法二代码详解五.🏠结语一.🏠题目描述兄弟们,废话不多说直接看题:🙉🙉🙊示例1:输入:[3,0,1]输出:2示例2:输入:[9,6,4,2,3,5,7,0,1]输出:8二.🏠题目分析这道题

(排序) 剑指 Offer 45. 把数组排成最小的数 ——【Leetcode每日一题】

❓剑指Offer45.把数组排成最小的数难度:中等输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例1:输入:[10,2]输出:“102”示例2:输入:[3,30,34,5,9]输出:“3033459”提示:0说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数拼接起来的数字可能会有前导0,最后结果不需要去掉前导0💡思路:可以看成是一个排序问题,在比较两个字符串s1和s2的大小时,应该比较的是s1+s2和s2+s1的大小:如果s1+s2,那么应该把s1排在前面,否则应该把s2排在前面。总体流程:初始化:字符串列表strs,保存各数字的字符

Leetcode:【448. 找到所有数组中消失的数字】题解

题目给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1,n] 内。请你找出所有在 [1,n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。难度:简单题目链接:448.找到所有数组中消失的数字示例1输入:nums=[4,3,2,7,8,2,3,1]输出:[5,6]示例2输入:nums=[1,1]输出:[2]解题思路:题目意思是再在有n个元素的数组中,找出[1,n]中没有出现的数组,其中n个元素中,可能会出现重复的元素,于是我们就可以再次创建一个临时数组tmp(每个元素置0),存放相应的元素来取消重复的元素。然后遍历整个数组,如果元素为零,则为没有出现

【LeetCode周赛】2022上半年题目精选集——动态规划

文章目录2140.解决智力问题解法1——倒序DP(填表法)解法2——正序DP(刷表法)⭐⭐⭐2167.移除所有载有违禁货物车厢所需的最少时间⭐⭐⭐解法1——前缀和⭐⭐⭐⭐⭐解法2——前后缀分解+动态规划代码1——看了思路之后自己写的代码2——代码1的优化(一次遍历)⭐2172.数组的最大与和(状态压缩DP)⭐⭐⭐⭐⭐思路代码补充:相似题目——1879.两个数组最小的异或值之和⭐⭐⭐2188.完成比赛的最少时间⭐⭐⭐⭐⭐思路——结合性质巧妙线性DP(预处理每种圈数的最短时间+动态规划)代码2209.用地毯覆盖后的最少白色砖块⭐⭐⭐⭐⭐思路——考虑是否使用第i条地毯且其末尾覆盖第j块板砖代码221

LeetCode刷题(数组):详解两数之和与合并两个有序数组

1.两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例一:示例二:示例三:1.思路一(暴力求解)直接暴力求解,采用二重循环,依次遍历数组中的两个元素,查看当前的两个元素之和是否等于目标元素target的值,如果等于,就把当前遍历的索引i,j分别放入目标数组中返回即可!classSolution{publicint[]twoSum(int[]nums,inttarget){int[]list=newi

Leetcode.73矩阵置零

给定一个 mxn 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法classSolution{publicvoidsetZeroes(int[][]matrix){intm=matrix.length,n=matrix[0].length;boolean[]row=newboolean[m];boolean[]col=newboolean[n];for(inti=0;i

​LeetCode解法汇总2679. 矩阵中的和

目录链接:力扣编程题-解法汇总_分享+记录-CSDN博客GitHub同步刷题项目:https://github.com/September26/java-algorithms原题链接:力扣描述:给你一个下标从 0 开始的二维整数数组 nums 。一开始你的分数为 0 。你需要执行以下操作直到矩阵变为空:矩阵中每一行选取最大的一个数,并删除它。如果一行中有多个最大的数,选择任意一个并删除。在步骤1删除的所有数字中找到最大的一个数字,将它添加到你的 分数 中。请你返回最后的 分数 。示例1:输入:nums=[[7,2,1],[6,4,2],[6,5,3],[3,2,1]]输出:15解释:第一步操作

LeetCode-复制带随机指针的链表

题目描述:给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由n个全新节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。例如,如果原链表中有X和Y两个节点,其中X.random-->Y。那么在复制链表中对应的两个节点x和y,同样有x.random-->y。返回复制链表的头节点。用一个由 n 个节点组成的链表来表示输入/输出中的