草庐IT

Leetcode6

全部标签

【LeetCode力扣】42. 接雨水

目录1、题目介绍2、解题思路2.1、暴力破解法2.2、双指针法  1、题目介绍原题链接: 42.接雨水-力扣(LeetCode) 示例1: 输入:height=[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)。  示例2:输入:height=[4,2,0,3,2,5]输出:9 提示:n==height.length102、解题思路2.1、暴力破解法首先看到这题的第一反应就是,通过每层遍历去找出蓝色块(即水块)。只要找到每一层的边界,再通过右边界rig

(滑动窗口) 76. 最小覆盖子串 ——【Leetcode每日一题】

❓76.最小覆盖子串难度:困难给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。注意:对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。如果s中存在这样的子串,我们保证它是唯一的答案。示例1:输入:s=“ADOBECODEBANC”,t=“ABC”输出:“BANC”解释:最小覆盖子串“BANC”包含来自字符串t的‘A’、‘B’和‘C’。示例2:输入:s=“a”,t=“a”输出:“a”解释:整个字符串s是最小覆盖子串。示例3:输入:s=“a”,t=“aa”输出:“”解释:t中两个字符‘a’均应包含在s

LeetCode-169. 多数元素(C语言)

目录捏一、题目描述二、示例与提示三、思路四、代码一、题目描述给定一个大小为n的数组nums,返回其中的多数元素。多数元素是指在数组中出现次数大于⌊n/2⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。二、示例与提示示例1:输入:nums=[3,2,3]输出:3示例2:输入:nums=[2,2,1,1,1,2,2]输出:2提示n==nums.length11进阶:尝试设计时间复杂度为O(n)、空间复杂度为O(1)的算法解决此问题。三、思路拿到本题首先想到的是使用哈希思想,新建立一个数组arr,将nums数组中的各元素映射到arr中,最终返回arr数组中值最小的元素下标。后来发现

【LeetCode力扣】189 53 轮转数组 | 最大子数组和

目录1、189.轮转数组1.1、题目介绍1.2、解题思路2、53.最大子数组和2.1、题目介绍2.2、解题思路 1、189.轮转数组1.1、题目介绍原题链接:189.轮转数组-力扣(LeetCode)​示例1:输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3,4,5,6]向右轮转2步:[6,7,1,2,3,4,5]向右轮转3步:[5,6,7,1,2,3,4]示例 2:输入:nums=[-1,-100,3,99],k=2输出:[3,99,-1,-100]解释: 向右轮转1步:[99,-1,-100,3]向右轮转2步:[

leetcode:2441. 与对应负数同时存在的最大正整数(python3解法)

难度:简单给你一个 不包含 任何零的整数数组 nums ,找出自身与对应的负数都在数组中存在的最大正整数 k 。返回正整数 k ,如果不存在这样的整数,返回 -1 。示例1:输入:nums=[-1,2,-3,3]输出:3解释:3是数组中唯一一个满足题目要求的k。示例2:输入:nums=[-1,10,6,7,-7,1]输出:7解释:数组中存在1和7对应的负数,7的值更大。示例3:输入:nums=[-10,8,6,7,-2,-3]输出:-1解释:不存在满足题目要求的k,返回-1。提示:1-1000nums[i]!=0题解:classSolution:deffindMaxK(self,nums:Li

Leetcode:【189. 轮转数组】

题目给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数难度:中等题目链接:189.轮转数组示例1:输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3,4,5,6]向右轮转2步:[6,7,1,2,3,4,5]向右轮转3步:[5,6,7,1,2,3,4]示例 2:输入:nums=[-1,-100,3,99],k=2输出:[3,99,-1,-100]解释:向右轮转1步:[99,-1,-100,3]向右轮转2步:[3,99,-1,-100]提示:1-2^310代码展示voidreverse_nu

【LeetCode-中等题】73. 矩阵置零

题目题解一:使用标记数组publicvoidsetZeroes(int[][]matrix){intm=matrix.length;intn=matrix[0].length;boolean[]row=newboolean[m];boolean[]col=newboolean[n];for(inti=0;im;i++){for(intj=0;jn;j++){if(matrix[i][j]==0)row[i]=col[j]=true;//将这一行和这一列的数据设为true}}for(inti=0;im;i++){for(intj=0;jn;j++){if(row[i]||col[j]){//若行

【JavaScript】leetcode链表相关题解

【JavaScript】leetcode链表相关题解一、什么是链表?二、Javascript中的链表三、leetcode相关链表2.两数相加237.删除链表中的节点206.反转链表💎个人主页:阿选不出来💎个人简介:大三学生,热爱Web前端,随机掉落学习碎片💎目前开发的专栏:JS🍭Vue🍭React🍭💎祝愿今天的你比昨天更加博识了!一、什么是链表?链表的官方定义:链表是一种物理存储单位上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。看到这里,相信你肯定一知半解。没关系,接下来我们将链表与我们熟悉的数组进行一个对比,就好理解多了!存储数据方面:数组:使用一块连续的内

【算法|动态规划No.28】leetcode1312. 让字符串成为回文串的最少插入次数

个人主页:兜里有颗棉花糖欢迎点赞👍收藏✨留言✉加关注💓本文由兜里有颗棉花糖原创收录于专栏【手撕算法系列专栏】【LeetCode】🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助🍓希望我们一起努力、成长,共同进步。点击直接跳转到该题目目录1️⃣题目描述2️⃣题目解析3️⃣解题代码1️⃣题目描述给你一个字符串s,每一次操作你都可以在字符串的任意位置插入任意字符。请你返回让s成为回文串的最少操作次数。「回文串」是正读和反读都相同的字符串。示例1:输入:s=“zzazz”输出:0解释:字符串“zzazz”已经是回文串了,所以不需要做任何插入操作。示例2:输入:s=“mba

【LeetCode力扣】234 快慢指针 | 反转链表 | 还原链表

 目录1、题目介绍2、解题思路2.1、暴力破解法2.2、快慢指针反转链表 1、题目介绍原题链接: 234.回文链表-力扣(LeetCode)示例1:输入:head=[1,2,2,1]输出:true 示例2:输入:head=[1,2]输出:false 提示: 链表中节点数目在范围[1,10^5] 内0进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?2、解题思路判断回文,就是判断是否是对称的。有些朋友对于数组的回文判断非常熟悉,但是对链表的回文判断可能就无从下手了,其实都一样的。有一种非常简单的方式就是将链表转化成数组,然后就是判断该数组是否回文就可以了,这种方式统称暴力破解