自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(545)
  • 收藏
  • 关注

原创 LeetCode 剑指 Offer II 061. 和最小的 k 个数对***

没有看出来是最小堆问题,光想着双指针怎么调整了。

2022-07-18 19:29:46 1844 1

原创 LeetCode 188. 买卖股票的最佳时机 IV***(double,need triple)

123题目的扩充

2022-07-13 18:59:01 317

原创 LeetCode1089. 复写零

先找到能到达的最大情况,然后反向向后移;

2022-06-17 16:09:00 317 1

原创 LeetCode 532. 数组中的 k-diff 数对

暴露了自己滑动窗口不太熟练的问题,双值有序不应该被卡住;

2022-06-16 19:17:46 304

原创 LeetCode 890. 查找和替换模式

直接模拟,没啥好说的,之前还想是不是可能有点其他的套路可以操作一下;

2022-06-13 14:21:50 1384 1

原创 LeetCode 926. 将字符串翻转到单调递增*

值得注意的是这个题目的LCS思路;可以转化为寻找一个序列的最长不下降子串,之后直接总长度-1,但是这样必定是n2n^2n2的复杂度;可以转为LIS问题;使用dp数组g,下标表示长度为i的序列,内容为长度为i的序列结尾元素为多少;通过二分可以将时间变为nlognnlognnlogn;...

2022-06-13 14:12:51 127

原创 LeetCode 1051. 高度检查器

学校打算为全体学生拍一张年度纪念照。根据要求,学生需要按照 非递减 的高度顺序排成一行。排序后的高度情况用整数数组 expected 表示,其中 expected[i] 是预计排在这一行中第 i 位的学生的高度(下标从 0 开始)。给你一个整数数组 heights ,表示 当前学生站位 的高度情况。heights[i] 是这一行中第 i 位学生的高度(下标从 0 开始)。排序,还以为能用单调栈啥的,结果没用上;...

2022-06-13 14:08:33 103

原创 LeetCode 1673. 找出最具竞争力的子序列**

和题目同解决方案;是前驱方案;相当于寻找一个最小的非严格上升序列,保证前端元素尽可能地小;index代表已保存的位数;remain代表要删掉的个数;所以通过remain来确定,如果要保证前端元素尽可能小,最多能删除多少个;...

2022-06-10 22:25:49 1171

原创 LeetCode 1996. 游戏中弱角色的数量*

之前见过一道原题;卡在了单调栈上的第二维度排序上;

2022-06-10 21:35:42 406

原创 LeetCode 321. 拼接最大数***(double,need triple strongly)

涉及以下点:

2022-06-10 16:33:55 74

原创 LeetCode 255. 验证前序遍历序列二叉搜索树*

单调栈经典;如果用左右子树递归判断,会爆;

2022-06-10 14:45:31 106

原创 LeetCode 526. 优美的排列***(double,need triple)

DP记忆化搜索;难点在于两地方:利用位bit来表达那些位置用了,不用关心具体用的是谁;枚举1~n位,此时表示考虑第i位能有多少收益,dp[i][state];其中state代表状态值;枚举所有状态,但是注意,由于现在枚举到i位,总共填进去i个数,因此state是否判断需要统计已用多少个,是否是i个,也就是统计每个状态的bit 1的个数;对合法状态进行1~n的枚举,首先选择填进去的数字要符合题目条件,其次对于该数,也必须在state表示已用过;加起来就行;...

2022-06-09 20:11:05 145 1

原创 LeetCode 497. 非重叠矩形中的随机点**

随即问题,统计点,然后直接随机抽一个,算是哪个矩阵的几行几列。前缀和二分有个问题;首先,对于n个点,随机数生成的是0~n-1的一个值,实际寻找的时候一定要+1;例如,对于生成随机数4,其实是要求第五个点;对于,0,1,4,8;如果按照4来找,会找到第二个矩阵,实际上要找第五个点,应该找到第三个矩阵;同理,后序在该矩阵里,应该找5-4=1,第一个点;但是后续算坐标偏移,又应该剪1,麻烦的一笔;...

2022-06-09 15:12:57 100

原创 LeetCode 1155. 掷骰子的N种方法**(double,need triple)

完全背包问题,被卡的一塌胡涂;看了三叶的才知道和传统01写的大差不差;其实传递过去应该是一个阶梯形,但是从0开始遍历无伤大雅;

2022-06-08 21:39:09 76

原创 LeetCode 6638. 大礼包***

记忆化搜索,是没想到还能这么搜的;采用完全背包有6个维度,有个牛批的人居然做出来,这我他妈的是没想到的;DP感觉和记忆化搜索类似,是否是一种?

2022-06-08 20:38:43 83

原创 LeetCode 474. 一和零**(double,need triple)

多维dp,多个标准直接上多维,第一次见;

2022-06-08 19:27:17 72

原创 LeetCode 1049. 最后一块石头的重量 II**

很难得一道题。。。一环扣一环,我是傻逼。刚开始想的是选取每次选取最大值抵消结果无解;第二次想的是每次求离均值最大的两个元素进行抵消,但是发现还是不太行;官方给的答案是整体加上正负号求序列和,使得结果的绝对值最小;例如,对于a,b,c,d四块石头,可以挑选(a,c),(d,b),相当于(a-c),(d-b),但是还要将这两块石头加入,还要在前面加正负号,但是这样展开还是相当于在所有元素前加入正负号,因此可以分为两组,第一组为被减数,第二组减数,只有当两组数相差足够小,才能满足绝对值最小;所以如果有sum总和,

2022-06-08 17:25:25 114

原创 LeetCode 1037. 有效的回旋镖

直接向量叉乘就可以,自己还判断了三条斜率;

2022-06-08 16:08:01 75

原创 LeetCode 731. 我的日程安排表 II**

线段树区间最大值问题;

2022-06-07 21:10:16 343

原创 LeetCode 1824. 最少侧跳次数**

卡在了dp条件上,其实思路不难想;里面有一个坑,有两种情况:所以判断特别繁琐,简单的判定方式为:这样判断有一好处,第一个条件可以保证跳过来的点,在同一级中同水平必须可达,破除坑1,并且可以同时满足2,判断三个最小值;例如:1 oo1第一列第二个位置不可达,要求补充第二列;先判断当前是否有障碍,无障碍就直接从上一个地方跳过来;可以得到:1 oo o1 1第二列中,第一个位置不可达,第二个位置从上一个位置不可达,第三个可以从上一个位置可达;在判断是否可以从同级的其他地方跳过来;可以得到:1 o

2022-06-07 21:05:39 138

原创 LeetCode 875. 爱吃香蕉的珂珂**

哎,自己是真傻逼,没看到二段性;这么典型的二分没看出来,真傻逼啊。

2022-06-07 18:34:19 57

原创 LeetCode 307. 区域和检索 - 数组可修改**

区间单值修改+求和的题;这里要注意一下l,r和cl,cr的思想;求区间和的的l,r应该是固定的,通过缩小cl,cr来确定区间所处区间,cl,cr进行削减;总共有三种情况:

2022-06-06 21:12:48 75

原创 LeetCode 1109. 航班预订统计*

差分,这道题还没发用传统区间排序做,可能会爆时间,并且区间重合度过高,判断起来十分费劲,目测要从左至右一直判断时间点;

2022-06-06 14:06:20 105

原创 LeetCode 1094. 拼车

这道题也可以用差分数组来算,但是个人觉得很取巧,原因是数组范围;如果对于数组范围为负数到正数,并不是给出的0~1000,差分数组方式并不是很合适;差分思想,区间起始结束进行标记,直接一边遍历中求最大值是否超过;差分必然快,因为On复杂度;...

2022-06-06 13:56:33 79

原创 LeetCode 829. 连续整数求和*

szy太强了;先确定范围,从2~len开始枚举长度;len,是从1,…,n,的最大长度,可以约等于为N\sqrt{N}N​;这是,szy大佬提供了一个思路,不如用前缀和,如果项数为len,起始元素为a;则满足a∗len+(1+....+len)=na*len+(1+....+len)=na∗len+(1+....+len)=n;判断a是否为整数存在就行;...

2022-06-03 19:12:25 74

原创 LeetCode 1277. 统计全为 1 的正方形子矩阵***

和211题同思路;唯一不同的是以ij为右下角的矩阵,dp内容为边长,l边长的矩阵可以由右下角生成出l个矩阵;

2022-06-03 00:07:59 84

原创 LeetCode 1146. 快照数组***(double,need triple)

二分卡了很久,这里简单说一下这种情况,手写二分恶心的情况基本上都碰到了;首先明确一下,vector第一层是index,第二层是pair,first为快照id,second为具体元素;由于这种方法的特殊性,会导致某一时刻的快照,如果后续没有新改变,则不会保存;例如,快照索引:[3,5,6];代表,0,1,2,为空,4和3的快照相同,因此二分的时候要格外注意;对于寻找idx的情况,应该寻找两种:针对于第二种情况,会分三种,第一种情况可以合并为第三种;......

2022-06-02 23:43:14 141

原创 LeetCode 1353. 最多可以参加的会议数目***(double,need triple)

用普通区间思路没法做,但是涉及到区间贪心问题;优先选择结束时早的,就可以腾出来时间给其他会议;因此可以按照时间轴遍历,把所有会议加入到时间轴中;pq保留所有已开始会议的结束时间;每遍历一个时间点,做两件事:pq相当于保存已开始但是未结束的会议;......

2022-06-02 22:25:10 75

原创 LeetCode 1190. 反转每对括号间的子串

采用字符栈可能更快一点;没啥建设性,感觉更trik一点;

2022-06-02 18:51:37 72

原创 LeetCode 390. 消除游戏**

跨区间模拟也行,但是题目不是这么做的,而且极其的麻烦;相当于只关心现阶段的队列元素个数,以及队头元素即可;

2022-06-02 18:34:29 280

原创 LeetCode 334. 递增的三元子序列**(double,need triple)

赋初始值的时候,已经满足second > first了,现在找第三个数third(1) 如果third比second大,那就是找到了,直接返回true(2) 如果third比second小,但是比first大,那就把second的值设为third,然后继续遍历找third(3) 如果third比first还小,那就把first的值设为third,然后继续遍历找third(这样的话first会跑到second的后边,但是不要紧,因为在second的前边,老first还是满足的)...

2022-06-02 17:20:28 61

原创 LeetCode 687. 最长同值路径*

自底向上,其实不太用修改;自己傻傻的修改了,不过总体思想和自己想的一样;

2022-06-02 16:44:15 55

原创 LeetCode 763. 划分字母区间

披着皮的区间合并,没什么可说的;直接记录开始和结束区间排序即可;

2022-06-02 15:55:19 73

原创 LeetCode 873. 最长的斐波那契子序列的长度**(double,need triple)

比之前见到的最长子序列问题更难;用常规的vector会爆时间,个人认为可能是随着序列的增加,会导致遍历unordered_map的时间会增大;题解思路是记录以(i,j)为结尾的最大长度;二维枚举i,j,寻找前面是否有arr[j]-arr[i],如果存在则存在一个三位的佩波那契数列[arr[j]-arr[i],arr[i],arr[j]];令arr[k]=arr[j]-arr[i];由(k,i)+1得到(i,j)的序列;这里注意一下,由于采用二维转一维的哈希标记...

2022-06-01 23:37:12 146

原创 LeetCode 1027. 最长等差数列

还是最长子序列问题,老生常谈;唯一不同的是O(n2)爆搜的时候需要进行map保存;据说和873题同思路;

2022-06-01 22:03:12 78

原创 LeetCode 1306. 跳跃游戏 III

本来以为是DP啥的,没想到普通BFS就可以。。。都不用双向BFS,我人傻了;

2022-06-01 21:16:58 244

原创 LeetCode 921. 使括号有效的最少添加

括号直接匹配,没什么可说的,直接left和right常量标记即可;

2022-06-01 21:01:55 71

原创 LeetCode 280. 摆动排序

人傻了,没想到还真是这样做的;波峰波谷直接判断,不满足直接交换i位和i-1位就可以;

2022-06-01 21:01:04 130

原创 LeetCode 1048. 最长字符串链

DP思路,直接双指针遍历判断是否相同,DP思路和最长子串相同;没什么难点,就是自己脑子抽抽;

2022-06-01 17:03:18 173

原创 LeetCode 1170. 比较字符串最小字母出现频次

直接排序二分,会更快,感觉二分是考点;

2022-06-01 16:24:30 77

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除