草庐IT

Leetcode6

全部标签

【LeetCode力扣】LCR170 使用归并排序的思想解决逆序对问题(详细图解)

目录1、题目介绍2、解题思路2.1、暴力破解法2.2、归并排序思想2.2.1、画图详细讲解2.2.2、归并排序解决逆序对的代码实现1、题目介绍首先阅读题目可以得出要点,即当前数大于后数时则当作一个【逆序对】,而题目是要求在一个数组中计算一共存在多少个这样的逆序对并输出结果。  原题链接:LCR170.交易逆序对的总数-力扣(LeetCode)​2、解题思路2.1、暴力破解法看到这里的第一反应就是这不是很简单吗?心想着这困难题也不过如此吧(笑)。就是直接使用暴力破解法,只需要两个for循环嵌套,一个record[i]在原地,另一个record[j]将后面所有遍历一遍,只要比record[i]的小

LeetCode 面试题 01.08. 零矩阵

文章目录一、题目二、C#题解一、题目  编写一种算法,若M×N矩阵中某个元素为0,则将其所在的行与列清零。  点击此处跳转题目。示例1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例2:输入:[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]二、C#题解  此题有很多方法解,无外乎都是记录需要清零的行与列,这种写法太无聊了。这里提出一种递归的方式,只需要遍历矩阵一次即可。当遇到0时,使用set0变量记录该位置,遍历完成后,重置所有set0。pub

( 数组和矩阵) 645. 错误的集合 ——【Leetcode每日一题】

❓645.错误的集合难度:简单集合s包含从1到n的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合丢失了一个数字并且有一个数字重复。给定一个数组nums代表了集合S发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例1:输入:nums=[1,2,2,4]输出:[2,3]示例2:输入:nums=[1,1]输出:[1,2]提示:22nums.length10411nums[i]104💡思路:法一:交换数组元素最直接的方法是先对数组进行排序,这种方法时间复杂度为O(nlogn)O(nlogn)O(nlogn)。本题

每天一道leetcode:542. 01 矩阵(图论&中等&广度优先遍历)

今日份题目:给定一个由0和1组成的矩阵mat,请输出一个大小相同的矩阵,其中每一个格子是mat中对应位置元素到最近的0的距离。两个相邻元素间的距离为1。示例1输入:mat=[[0,0,0],[0,1,0],[0,0,0]]输出:[[0,0,0],[0,1,0],[0,0,0]]示例2输入:mat=[[0,0,0],[0,1,0],[1,1,1]]输出:[[0,0,0],[0,1,0],[1,2,1]]提示m==mat.lengthn==mat[i].length11mat[i][j]iseither0or1.mat中至少有一个0题目思路找到距离当前位置最近的0,有两种思路,要么从0开始找1,要

每天一道leetcode:剑指 Offer 34. 二叉树中和为某一值的路径(中等&图论&深度优先遍历&递归)

今日份题目:给你二叉树的根节点root和一个整数目标和targetSum,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。叶子节点是指没有子节点的节点。示例1输入:root=[5,4,8,11,null,13,4,7,2,null,null,5,1],targetSum=22输出:[[5,4,11,2],[5,8,4,5]]示例2输入:root=[1,2,3],targetSum=5输出:[]示例3输入:root=[1,2],targetSum=0输出:[]提示树中节点总数在范围[0,5000]内-1000-1000题目思路使用递归深度优先遍历,使用前序遍历,在遍历途中,记录路径,如果

LeetCode #1235 Maximum Profit in Job Scheduling 规划兼职工作

1235MaximumProfitinJobScheduling规划兼职工作Description:Wehavenjobs,whereeveryjobisscheduledtobedonefromstartTime[i]toendTime[i],obtainingaprofitofprofit[i].You'regiventhestartTime,endTimeandprofitarrays,returnthemaximumprofityoucantakesuchthattherearenotwojobsinthesubsetwithoverlappingtimerange.Ifyouchoo

leetcode刷题(字符串相加、包含每个查询的最小区间、模拟行走机器人、环形子数组的最大和、满足不等式的最大值、四数之和、树中距离之和)

目录1、字符串相加2、包含每个查询的最小区间3、模拟行走机器人4、环形子数组的最大和5、满足不等式的最大值6、四数之和7、树中距离之和1、字符串相加classSolution:defaddStrings(self,num1:str,num2:str)->str:i=len(num1)-1#num1的末位j=len(num2)-1#num2的末位carry=0#进位位res=""#最终的结果字符串whilei>=0orj>=0:#只要有一个数字还没处理完,就得继续处理,因为是所有和#如果其中一个数字当前处理位已经超过最高位了(索引小于0),参与计算值的为0,即相当于高位补零#每一位的结果等于两个

LeetCode题解-让所有学生保持开心的分组方法数

⭐简单说两句⭐作者:后端小知识CSDN个人主页:后端小知识🔎GZH:后端小知识🎉欢迎关注🔎点赞👍收藏⭐️留言📝亲爱的各位友友们,今天来给大家讲解一道力扣中等题,废话不多说,接下面我就浅浅分析下这个题吧,我一定能给你讲明白的😀😀😀我们先来康康题目的意思啦,为了方便观看,我直接到力扣那里截了个屏过来✅划重点这道题免费哟,直接上链接🥰🥰🥰:让所有学生保持开心的分组方法数为了方便观看,我直接截图过来,贴心吧😁😁😁这个题只要大家想到了排序就能很快做出来咯思路我们先从小到大的排序分两种情况第一种全选和全不选​1.如果0​2.假设nums长度为len,如果len>nums[len-1],那么表示可以全选选部

力扣(LeetCode)算法_C++——字母异位词分组

给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的所有字母得到的一个新单词。示例1:输入:strs=[“eat”,“tea”,“tan”,“ate”,“nat”,“bat”]输出:[[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]示例2:输入:strs=[“”]输出:[[“”]]示例3:输入:strs=[“a”]输出:[[“a”]]vectorvectorstring>>groupAnagrams(vectorstring>&strs){unordered_mapstring,vectorstring>

链表oj题1(Leetcode)——移除链表元素,反转链表,链表的中间节点,

链表OJ一,移除链表元素1.1分析1.2代码二,找到链表的中间节点2.1分析2.2代码三,反转链表3.1分析3.2代码四,找到链表中倒数第k个节点4.1分析4.2代码一,移除链表元素移除链表元素1.1分析这里的删除要分成两种情况来考虑,因为这个题目给了我们头节点,所以分成头删和非头删。因为要记录下一个节点的位置,所以1我们这里选择新增两个指针方便记录。因为我们已经熟悉了链表所以这代码对我们来说还是很容易的。1.2代码structListNode*removeElements(structListNode*head,intval){structListNode*cur=head;structLi