草庐IT

LeetCode_day

全部标签

算法|Day50 单调栈1

LeetCode739-每日温度题目链接:力扣(LeetCode)官网-全球极客挚爱的技术成长平台题目描述:给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。解题思路首先此题是让我们找当前气温后出现的比其气温大的最近的一天的差值,这样我们就会想到用单调栈来记录所有遍历过的温度。我们需要一个递增的栈,首先压入第一天也就是下标为0的那天的温度,栈顶一直保存当前最低的温度,如果遇到某天温度比其大,则一直循环弹出栈顶元素,并存入当前天与栈顶天差值存入到r

day3_C++

day3_C++思维导图用C++的类完成数据结构栈的相关操作用C++的类完成数据结构循环队列的相关操作思维导图用C++的类完成数据结构栈的相关操作stack.h#ifndefSTACK_H#defineSTACK_H#include#includeusingnamespacestd;typedefintdatatype;#defineMAX5classStack{public:/*构造函数*/Stack();/*拷贝构造函数*/Stack(constStack&others);/*析构函数*/~Stack();/*判满true满*/boolis_full();/*判满true空*/boolis

LeetCode - #123 买卖股票的最佳时机 III

前言我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到122期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:困难1.描述给定一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成

Leetcode 15. 三数之和

题目要求给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。示例1:输入:nums=[-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]解释:nums[0]+nums[1]+nums[2]=(-1)+0+1=0。nums[1]+nums[2]+nums[4]=0+1+(-1)=0。nums[0]+nums[3]+nums[4]=(-1)+2+(-1)=0。不同

第一次写blog 对有序内容实现二分查找(day1)

用C++语言实现使用macos系统xcode建立新C++项目成功运行输出target的下标index为2#include#include#includeusingnamespacestd;intbinary_search(vector&nums,inttarget){intleft=0,right=nums.size()-1;while(lefttarget){right=mid-1;}else{left=mid+1;}}return-1;}intmain(){vectornums={1,3,5,7,9,11};inttarget=5;intindex=binary_search(nums,t

Leetcode 542. 01 矩阵

题目Givenanmxnbinarymatrixmat,returnthedistanceofthenearest0foreachcell.Thedistancebetweentwoadjacentcellsis1.Example1:image.pngInput:mat=[[0,0,0],[0,1,0],[0,0,0]]Output:[[0,0,0],[0,1,0],[0,0,0]]Example2:image.pngInput:mat=[[0,0,0],[0,1,0],[1,1,1]]Output:[[0,0,0],[0,1,0],[1,2,1]]解题思路这道题的要求是求出每个cell到0的

Leetcode经典中等题集

剑指Offer59-I.滑动窗口的最大值给定一个数组nums和滑动窗口的大小k,请找出所有滑动窗口里的最大值。示例:输入: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题解:classSolution{/***思路:*从nums数组中取出前k个数,存入队列中*获取队列的最大值存储到集合中*然后队列移除头部,在尾部添加第k+1个数,获

LeetCode - #125 验证回文串

前言我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到124期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:简单1.描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为

Leetcode 322 零钱兑换

题目要求给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。示例1:输入:coins=[1,2,5],amount=11输出:3解释:11=5+5+1示例2:输入:coins=[2],amount=3输出:-1示例3:输入:coins=[1],amount=0输出:0解题思路这道题中的零钱数额是不固定的,所以需要用动态规划来解决。dp[i]表示组成金额i需要的硬币的个数。动态转移方程:dp[i]=dp[i-k]+1起始状态:dp[0]

LeetCode - #124 二叉树中的最大路径和(Top 100)

前言本题为LeetCode前100高频题我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到123期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:困难1.描述路径被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。