草庐IT

Leetcode刷题第六周

全部标签

【LeetCode】剑指 Offer(28)

目录题目:剑指Offer54.二叉搜索树的第k大节点-力扣(Leetcode)题目的接口:解题思路:代码:过啦!!!题目:剑指Offer55-I.二叉树的深度-力扣(Leetcode)题目的接口:解题思路:代码:过啦!!!题目:剑指Offer55-II.平衡二叉树-力扣(Leetcode)题目的接口:解题思路:代码:过啦!!!写在最后:题目:剑指Offer54.二叉搜索树的第k大节点-力扣(Leetcode)题目的接口:/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;

【map】【单调栈 】LeetCode768: 最多能完成排序的块 II

作者推荐【贪心算法】【中位贪心】.执行操作使频率分数最大本文涉及的基础知识点单调栈分类、封装和总结排序map区间合并题目给你一个整数数组arr。将arr分割成若干块,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。返回能将数组分成的最多块数?示例1:输入:arr=[5,4,3,2,1]输出:1解释:将数组分成2块或者更多块,都无法得到所需的结果。例如,分成[5,4],[3,2,1]的结果是[4,5,1,2,3],这不是有序的数组。示例2:输入:arr=[2,1,3,4,4]输出:4解释:可以把它分成两块,例如[2,1],[3,4,4]。然而,分成[2,1],[

近屿智能OJAC第六期AIGC星辰大海:大模型工程师与产品专家深度训练营已拉开序幕

您想成为AIGC大模型领域的佼佼者吗?近屿智能OJAC第六期AIGC星辰大海:大模型工程师与产品专家深度训练营已拉开序幕,上千名学员已经实现转行、跳槽、升职、加薪,还不赶快行动起来,这是专为您量身定制的AI大模型学习之旅!一、现在0元报名,领取2天的试听课!为了让更多的感兴趣的学员能够了解到我们AIGC大模型培训班的具体内容,我们准备了两节试听课送给大家,欢迎各位学员报名预约!两天课程安排Day1 :ChatGPT的诞生与发展,chatGPT能力初探,大模型的应用架构拆解ChatGPT的诞生与发展ChatGPT能力展示与ChatGPT互动大模型产品应用架构大模型的挑战与未来Day2 :大模型p

LeedCode刷题---二分查找类问题

顾得泉:个人主页个人专栏:《Linux操作系统》  《C/C++》  《LeedCode刷题》键盘敲烂,年薪百万!一、二分查找题目链接:二分查找题目描述       给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例 2:输入:nums=[-1,0,3,5,9,12],target=2输出:-1解释:2不存在nums中因此返回-1提示:你可以假设 nums

LeetCode | 100. 相同的树

LeetCode|100.相同的树OJ链接判断两个节点是否等于空,两个都等于空就直接返回true如果一个等于空,另一个不等于空,说明false然后再判断两个树的值是否相等最后递归p的左,q的左,p的右,q的右boolisSameTree(structTreeNode*p,structTreeNode*q){if(p==NULL&&q==NULL)returntrue;if(p==NULL||q==NULL)returnfalse;if(p->val!=q->val)returnfalse;returnisSameTree(p->left,q->left)&&isSameTree(p->righ

【单调栈】LeetCode:2818操作使得分最大

作者推荐map|动态规划|单调栈|LeetCode975:奇偶跳本文涉及的基础知识点单调栈分类、封装和总结题目给你一个长度为n的正整数数组nums和一个整数k。一开始,你的分数为1。你可以进行以下操作至多k次,目标是使你的分数最大:选择一个之前没有选过的非空子数组nums[l,…,r]。从nums[l,…,r]里面选择一个质数分数最高的元素x。如果多个元素质数分数相同且最高,选择下标最小的一个。将你的分数乘以x。nums[l,…,r]表示nums中起始下标为l,结束下标为r的子数组,两个端点都包含。一个整数的质数分数等于x不同质因子的数目。比方说,300的质数分数为3,因为300=2*2*3*

【数据结构】LRU缓存的简单模拟实现(leetcode力扣146LRU缓存)

文章目录一、定义二、LRU模拟实现二、代码实现一、定义LRU是LeastRecentlyUsed的缩写,意思是最近最少使用,它是一种Cache替换算法。Cache的容量有限,因此当Cache的容量用完后,而又有新的内容需要添加进来时,就需要挑选并舍弃原有的部分内容,从而腾出空间来放新内容。LRUCache的替换原则就是将最近最少使用的内容替换掉。二、LRU模拟实现146.LRU缓存下面我们就借力扣的这道题来简单实现一个题目中要求我们以O(1)的时间复杂度来完成,查找的话我们首先肯定会想到哈希表,但又涉及一个问题,我们查找完之后还需要更新一下刚刚查找数据的位置,将这个数据置为是新的数据,我们如何

LeetCode:455. 分发饼干——贪心算法

🍎道阻且长,行则将至。🍓🌻算法,不如说它是一种思考方式🍀算法专栏:👉🏻123贪心算法是在每个阶段选取局部最优解,最终得到全局最优解的一种思想。贪心算法与动态规划的思路相似,但贪心算法要在每个阶段选择最优解,而这个最优解不一定是全局最优解,贪心算法在某些情况并不能得到全局最优解。贪心算法的基本思路:找到最优子结构:将问题分解为多个子问题,并且每个子问题具有最优子结构,即解决子问题的最优解可以组合成原问题的最优解。找到贪心策略:为了解决每个子问题,找出一种最优策略,使得每个子问题都采用该策略,最终可以得到原问题的最优解。证明贪心策略的合理性:贪心策略在每个阶段选取局部最优解,最终可以得到全局最优解

数据结构第六课 -----排序

作者前言🎂✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂​🎂作者介绍:🎂🎂🎂🎉🎉🎉🎉🎉🎉🎉🎂🎂作者id:老秦包你会,🎂简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨🎂🎂🎂🎂🎂🎂🎂🎂🎂个人主页::小小页面🎂🎂gitee页面:秦大大🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂一个爱分享的小博主欢迎小可爱们前来借鉴🎂排序**作者前言**直接插入排序冒泡排序希尔排序直接选择排序堆排序快速排序hoare版本优化点三数取中小区间优化挖坑法前后指针版本疑惑直接插入排序思路:我们要记得[0,end]是有序的,我们要把tmp的值插入到[0,end]就要进行判断,直到tmp等于

每日一题——LeetCode1002

方法一个人方法:将words里的字符串的每个字符出现的次数都转为键值对的形式:循环求两两键值对数组的交集:最后的交集就是重复出现的字符和次数,把键值对转回字符数组形式即可思路对了,但是太复杂了,时间效率很低varcommonChars=function(words){vararr=[],newWords=[],union=[]for(varitemofwords){for(varcharofitem){if(!arr[char]){arr[char]=1}else{arr[char]++}}newWords.push(arr)arr=[]}arr=newWords[0]for(vari=1;i