草庐IT

Leetcode

全部标签

【LeetCode】剑指 Offer <二刷>(4)

目录题目:剑指Offer09.用两个栈实现队列-力扣(LeetCode)题目的接口:解题思路:代码:过啦!!!题目:剑指Offer10-I.斐波那契数列-力扣(LeetCode)题目的接口:解题思路:代码:过啦!!!写在最后:题目:剑指Offer09.用两个栈实现队列-力扣(LeetCode)题目的接口:typeCQueuestruct{}funcConstructor()CQueue{}func(this*CQueue)AppendTail(valueint){}func(this*CQueue)DeleteHead()int{}/***YourCQueueobjectwillbeinsta

【LeetCode】买卖股票的最佳时机最多两次购买机会

买卖股票的最佳时机题目描述算法分析程序代码链接:买卖股票的最佳时机题目描述算法分析程序代码classSolution{public:intmaxProfit(vectorint>&prices){intn=prices.size();vectorvectorint>>f(n,vectorint>(3,-0x3f3f3f));autog=f;f[0][0]=-prices[0];g[0][0]=0;for(inti=1;in;++i){for(intj=0;j3;++j){f[i][j]=max(f[i-1][j],g[i-1][j]-prices[i]);g[i][j]=g[i-1][j];i

算法leetcode|76. 最小覆盖子串(rust重拳出击)

文章目录76.最小覆盖子串:样例1:样例2:样例3:提示:进阶:分析:在这里插入图片描述题解:rust:go:c++:python:java:76.最小覆盖子串:给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。注意:对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。如果s中存在这样的子串,我们保证它是唯一的答案。样例1:输入: s="ADOBECODEBANC",t="ABC" 输出: "BANC" 解释: 最小覆盖子串"BANC"包含来自字符串t的'A'、'B'和'C'。样例2:输入:

怎么刷算法,leetcode上有哪些经典题目

合并两个有序数组给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m+n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。classSolution{publicvoidmerge(int[]nums1,intm,int[]nums2,intn){for(

LeetCode--HOT100题(19)

目录题目描述:54.螺旋矩阵(中等)题目接口解题思路代码PS:题目描述:54.螺旋矩阵(中等)给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。LeetCode做题链接:LeetCode-螺旋矩阵示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例2:输入:matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]提示:m==matrix.lengthn==matrix[i].length1题目接口clas

LeetCode952三部曲之三:再次优化(122ms -> 96ms,超51% -> 超91%)

欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本文是《LeetCode952三部曲之三》的终篇,先回顾一下前文的成果,看看我们之前已经优化到什么程度:前文的优化思路是减小并查集数组的规模,带来的结果是节省内存、减少数组相关的执行次数,但从代码上分析,并查集数组处理所占比重并不多,所以造成此处整体优化效果一般所以,除了并查集,还要去寻找其他优化点,这就是本篇的主要内容优化思路寻找优化点的方向很明确:重点关注时间复杂度高的代码块按照上述思路,很容易就找到了下图中的代码段,位于程序入口位置,计算每

LeetCode刷题(ACM模式)-01数组

参考引用:代码随想录注:每道LeetCode题目都使用ACM代码模式,可直接在本地运行,蓝色字体为题目超链接0.数组理论基础数组(array)是存放在连续内存空间上的相同类型数据的集合,是一种复合数据类型,它是有序数据的集合,在存储空间中也是按顺序存储。数组中的每个元素具有相同的数据类型,可以方便的通过下标索引的方式访问到对应的数据。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。举一个字符数组的例子,如图所示数组下标都是从0开始的数组内存空间的地址是连续的数值数组元素的默认值为0,而引用元素的默认值为null数组元素可以是任何类型,包括数组类型正是因为数组的在内存空间的地址是连续

顺序表链表OJ题(1)——【LeetCode】

W...Y的主页 😊代码仓库分享 💕 前言:今天我们来回顾一下顺序表与链表,针对这一块我们也有许多OJ题目供大家参考。当我们学习完顺序表链表后避免不了一些习题的练习,这样才能巩固我们学习的内容。话不多说,我们开始进入OJ习题训练!!!【leetcode27.移除元素】 OJ链接给你一个数组 和一个值,你需要原地移除所有数值等于 的元素,并返回移除后数组的新长度。numsvalval不要使用额外的数组空间,你必须仅使用额外空间并原地修改输入数组。O(1)元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传

LeetCode——栈的压入、弹出序列

这里我用下面的例子子来讲解一下模拟栈的实现。例子1:pushed=[1,2,3,4,5]popped=[4,5,3,2,1]思路:第一步:我们先创建一个栈,然后将pushed的数据压进去第二步:判断!当压入栈的数据和popped第一个数据一样的时候,我们就出数据。ps:这时可以用一个posi来记录要比较的数据第三步:最后判断栈是否为空,为空就true,否则则false下面是源码:classSolution{public:boolvalidateStackSequences(vectorint>&pushed,vectorint>&popped){stackint>st;intposi=0;fo

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

704.二分查找题目链接:704.二分查找方法一:暴力遍历varsearch=function(nums,target){for(vari=0;inums.length-1;i++){if(nums[i]==target){returni}}return-1}方法二:二分法使用二分法的条件:有序数组无重复值二分法的两种写法左闭右闭[left,right]while(left[left,right]的条件下,当left=right,仍然在此区间内if(nums[mid]>target)right=mid-1还是right=mid[left,rght]的条件下,当right=mid时,nums[m