草庐IT

LeetCode刷题之树

全部标签

【单调栈】LeetCode2334:元素值大于变化阈值的子数组

作者推荐map|动态规划|单调栈|LeetCode975:奇偶跳本文涉及的基础知识点单调栈分类、封装和总结题目给你一个整数数组nums和一个整数threshold。找到长度为k的nums子数组,满足数组中每个元素都大于threshold/k。请你返回满足要求的任意子数组的大小。如果没有这样的子数组,返回-1。子数组是数组中一段连续非空的元素序列。示例1:输入:nums=[1,3,4,3,1],threshold=6输出:3解释:子数组[3,4,3]大小为3,每个元素都大于6/3=2。注意这是唯一合法的子数组。示例2:输入:nums=[6,5,6,5,8],threshold=7输出:1解释:子

LeetCode刷题--- 优美的排列

个人主页:元清加油_【C++】,【C语言】,【数据结构与算法】-CSDN博客元清加油_【C++】,【C语言】,【数据结构与算法】-CSDN博客个人专栏力扣递归算法题 http://t.csdnimg.cn/yUl2I  【C++】    http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​​​​http://t.csdnimg.cn/hKh2l前言:这个专栏主要讲述递归递归、搜索与回溯算法,所以下面题目主要也是这些算法做的 我讲述题目会把讲解部分分为3个部分:1、题目解析2、算法原理思路讲解3、代码实现优美的排列题目链接:题目假设有从1到n的n个整数。用这些整数构造一个数

【经典LeetCode算法题目专栏分类】【第4期】BFS广度优先算法:单词接龙、最小基因变化、二进制矩阵中的最短路径

《博主简介》小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~👍感谢小伙伴们点赞、关注!一般涉及到最小层数问题,要想到BFS。只要找到第一个符合条件的就是最小层数。单词接龙# 单向BFSclass Solution:    def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int:        queue= [(beginWord, 1)]        word_list= [ ch

实现单链表的基本操作(力扣、牛客刷题的基础&笔试题常客)

本节来学习单链表的实现。在链表的刷题中,单链表占主导地位,很多oj题都在在单链表的背景下进行;而且很多链表的面试题都是以单链表为背景命题。所以,学好单链表的基本操作很重要目录一.介绍单链表1.链表及单链表2.定义一个链表二.实现单链表的功能1.插入数据2.打印链表3.删除数据4.查找某个元素5.检测链表大小6.完整的链表一.介绍单链表1.链表及单链表(1)什么是链表链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。例如下面的这种数据结构,由一个个的结点组成。每个结点中存储着数据,又存储着其他结点的地址。(2)什么是单链表链表有三个特点:单向和双向、带头

【算法|动态规划No.10】leetcode LCR 089. 打家劫舍 & LCR 090. 打家劫舍 II

个人主页:兜里有颗棉花糖欢迎点赞👍收藏✨留言✉加关注💓本文由兜里有颗棉花糖原创收录于专栏【手撕算法系列专栏】【LeetCode】🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助🍓希望我们一起努力、成长,共同进步。目录一、LCR089.打家劫舍1️⃣题目描述2️⃣题目解析3️⃣解题代码二、LCR090.打家劫舍II1️⃣题目描述2️⃣题目解析3️⃣解题代码一、LCR089.打家劫舍点击可直接跳转到该题目1️⃣题目描述一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚

【离散数学】——期末刷题题库(图论应用题)

🎃个人专栏:🐬算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客🐳Java基础:Java基础_IT闫的博客-CSDN博客🐋c语言:c语言_IT闫的博客-CSDN博客🐟MySQL:数据结构_IT闫的博客-CSDN博客🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客💎C++:C++_IT闫的博客-CSDN博客🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客​​​​​​🥏python:python_IT闫的博客-CSDN博客🐠离散数学:离散数学_IT闫的博客-

图灵日记之Leetcode删除有序数组中的重复项&&合并两个有序数组&&移除链表元素

题目删除有序数组中的重复项题目入口题目内容思路代码c版本c嘎嘎版本合并两个有序数组题目链接题目内容思路代码c版本(c嘎嘎版本与c版本内容一样)移除链表元素题目链接题目内容思路1代码1思路2代码2思路3代码3删除有序数组中的重复项题目入口题目内容给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k,你需要做以下事情确保你的题解可以被通过:更改数组nums,使nums的前k个元素包含唯一元素,并按照它们最初在nums中出现的顺序排列。nums的其

leetcode 1633. 各赛事的用户注册率

https://leetcode.cn/problems/percentage-of-users-attended-a-contest/?envType=study-plan-v2&envId=sql-free-50聚合函数分组后计算的是一组内的数据,分组前我们认为所有数据是一组本题注意还需要嵌套语句selectcontest_id,round(count(user_id)/(selectcount(user_id)fromUsers)*100,2)aspercentagefromRegistergroupbycontest_idorderbypercentagedesc,contest_id

【二叉树】【单调双向队列】LeetCode239:滑动窗口最大值

作者推荐map|动态规划|单调栈|LeetCode975:奇偶跳涉及知识点单调双向队列二叉树题目给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例1:输入:nums=[1,3,-1,-3,5,3,6,7],k=3输出:[3,3,5,5,6,7]解释:滑动窗口的位置最大值[13-1]-3536731[3-1-3]5367313[-1-35]367513-1[-353]67513-1-3[536]7613-1-35[367]7示例2:输入:nums=[1],k=1输出:[1

LeetCode-42. 接雨水【栈 数组 双指针 动态规划 单调栈】

LeetCode-42.接雨水【栈数组双指针动态规划单调栈】题目描述:解题思路一:单调栈,维护一个单调递减栈。每当遇到当前元素大于栈顶元素就出栈,在出栈时更新答案。当遇到出栈的情况,若单调栈栈左边有一个元素则必有height[left]>height[top],有因为当前元素大于栈顶,那么可以得到当前的接到的雨水量,宽是i-left-1,长是min(height[i],height[left])-height[top]。根据宽度和高度即可计算得到该区域能接的雨水量。解题思路二:动态规划,其实很简单。我们只需要知道一个结论,遇到当前元素i,这个位置接的雨水量是min(leftMax[i],rig