首页 > 其他分享 >力扣乱刷

力扣乱刷

时间:2023-10-17 22:56:57浏览次数:33  
标签:串为 力扣 KMP 回文 单调 指针

一些力扣乱刷,旨在复健。

42.接雨水:

单调栈。

32.最长有效括号:

数据结构oj原题,标记所有无效括号的位置即可,用栈维护。

84.柱状图中最大的矩形:

单调栈。

85.最大矩形:

对每一行跑一个单调栈。

224.基本计算器:

中缀转后缀模板题。

402.移掉k位数字:

每次移除序列中最靠左的极大值点,重复k次

321.拼接最大数:

考虑k=m+n的时候如何做:两个指针分别指向两个数组的头,哪个指针指的大就选哪个,然后对应指针右移,循环往复。当k<m+n的时候,需要在其中一个序列删若干个数。假设序列1删s个数,那么这个序列按照402题的方法删去s个数,序列2按照相同方法删掉一些数,删完的序列合并的方法即k=m+n时的做法。最外层枚举s。

214.最短回文串:

等价于求最长回文前缀。可以哈希,也可以KMP。KMP的话就让模式串为原串,文本串为翻转之后的串。当文本串匹配到第n位的时候模式串已经匹配的长度就是最大回文前缀的长度。

标签:串为,力扣,KMP,回文,单调,指针
From: https://www.cnblogs.com/tongyf2333/p/17770925.html

相关文章

  • 力扣-120. 三角形最小路径和
    题目描述给定一个三角形triangle,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点在这里指的是下标与上一层结点下标相同或者等于上一层结点下标+1的两个结点。也就是说,如果正位于当前行的下标i,那么下一步可以移动到下一行的下标i或i+1。示例1:......
  • 力扣---137. 只出现一次的数字 II
    给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次。请你找出并返回那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 示例1:输入:nums=[2,2,3,2]输出:3示例2:输入:nums=[0,1,0,1,0,1,99]......
  • 力扣19.删除链表的倒数第 N 个结点
    给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5] 示例2:输入:head=[1],n=1输出:[] 示例3:输入:head=[1,2],n=1输出:[1]  提示:链表中结点的数目为 sz1<=sz<=300<=N......
  • 力扣18:四数之和(双指针+剪枝)
    给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a],nums[b],nums[c],nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0<=a,b,c,d <na、b、c 和 d 互不相同nums[a]+nums[b]......
  • 【力扣】9.回文数
    转化成字符串之后进行判断的思路很简单咱就不写了。做一下进阶:你能不将整数转为字符串来解决这个问题吗?我最初的思路:用二进制掩码异或判断。学到了新知识:GCC内建函数__builtin_clz(CountLeadingZeros,统计前导零个数)->获取二进制正数最大有效位。细节:注意掩码获取时int最高位1......
  • 力扣-2367-算术三元组的数目
    给你一个下标从0开始、严格递增的整数数组nums和一个正整数diff。如果满足下述全部条件,则三元组(i,j,k)就是一个算术三元组:i<j<k,nums[j]-nums[i]==diff且nums[k]-nums[j]==diff返回不同算术三元组的数目。 示例1:输入:nums=[0,1,4,6,7,10],di......
  • 力扣-2744-最大字符串配对数目
    给你一个下标从0开始的数组words,数组中包含互不相同的字符串。如果字符串words[i]与字符串words[j]满足以下条件,我们称它们可以匹配:字符串words[i]等于words[j]的反转字符串。0<=i<j<words.length请你返回数组words中的最大匹配数目。注意,每个字符串最......
  • 力扣-2006-差的绝对值为 K 的数对数目
    给你一个整数数组nums和一个整数k,请你返回数对(i,j)的数目,满足i<j且|nums[i]-nums[j]|==k。|x|的值定义为:如果x>=0,那么值为x。如果x<0,那么值为-x。示例1:输入:nums=[1,2,2,1],k=1输出:4解释:差的绝对值为1的数对为:-[1,2,2,1]-[1,2,2,1]-......
  • 力扣-2574-左右元素和的差值
    给你一个下标从0开始的整数数组nums,请你找出一个下标从0开始的整数数组answer,其中:answer.length==nums.lengthanswer[i]=|leftSum[i]-rightSum[i]|其中:leftSum[i]是数组nums中下标i左侧元素之和。如果不存在对应的元素,leftSum[i]=0。rightSum[i]是数组n......
  • 力扣-2114-句子中的最多单词数
    一个句子由一些单词以及它们之间的单个空格组成,句子的开头和结尾不会有多余空格。给你一个字符串数组sentences,其中sentences[i]表示单个句子。请你返回单个句子里单词的最多数目。 示例1:输入:sentences=["aliceandbobloveleetcode","ithinksotoo","......