自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AcWing 338. 计数问题

而实现这个函数具体功能,我们就巧妙地通过求解最大的数字n上的每一位i出现的次数,也即1 - n中所有数字的第一位是i的个数、1 - n中所有数字的第二位是i的个数、1 - n中所有数字的第三位是i等等,加在一起。就能得到count函数的返回值了。答题思路是首先采用前缀和的思想,我们需要求区间a到b上的,我们转化成1 - b上的减去1 - a - 1上的。

2023-02-19 19:13:30 306

原创 LeetCode 122. 买卖股票的最佳时机 II

这题重点在于我们如何将交易分解,这是很巧妙的。第i天买入,到第j天卖出(j >= i)可以分解为:第i天买入,第i+1天卖出,第i+1天买入,第i+2天又卖出,第i+2天再买入…以此类推到第j天,因此每天的买卖股票收益如果是正数,我们就可以将其加入答案当中。

2023-02-07 11:17:59 156

原创 LeetCode 121.买卖股票的最佳时机

做法大概就是我们枚举每一天的时候都假设该天卖出股票,我们去寻找该天之前的股票可以买入的最低价,然后在枚举过程中不断更新更优的答案。好家伙转眼快一个月没写题解了,过年题还是有在慢慢刷的,只是速度慢了很多哈哈哈。

2023-02-06 19:47:07 212

原创 LeetCode 74. 搜索二维矩阵

这题无非是另类的二分,我们运用矩阵坐标变换的法则,就可以将一维的线性坐标映射成的矩阵的二维坐标。

2023-01-18 11:00:12 166

原创 LeetCode 70. 爬楼梯

这题属于递推题,我们可以手动推导一下,首先假设我们在第0阶,也就相当于地面。之后n = 1时,走到1阶我们只有一种方式,就是从0阶走一步到1。之后第2阶,则有两种方式:从第0阶走两步到2,从第1阶走一步到2。所以有多少种走到第1阶的方式,就有多少从第1阶走一步到第2阶的方式。

2023-01-17 10:40:55 56

原创 LeetCode 60.排列序列

做法一:用c++中自带的next_permutation来做,在这里是不会超时的。做法二:通过定位k所在区间来做。

2023-01-14 14:41:19 56

原创 LeetCode 54. 螺旋矩阵

这题关键在于构建方向数组,如下图所示。

2023-01-12 09:11:03 51

原创 LeetCode 51. N 皇后

非常经典的八皇后问题。重点是如何判断对角线是否有棋子。我们可以在棋盘上建立坐标系,假设点坐标为。

2023-01-10 11:31:00 48

原创 LeetCode 48. 旋转图像

如果想到了取巧的方法,就是一个很简单的题。

2023-01-09 16:03:10 48

原创 LeetCode 45. 跳跃游戏 II

也不同,所以每一个点走一步所能到达最远的点都是不一样的。并且我们保证了走两步点组中的所有点,它们都是最少的步数,它们之中都不存在,明明一步能到的,我们给他更新成了两步(这个之前也分析了),同样也不存在的是,这个走两步点组的右边界的下一个点一定是需要走三步才能到的,也就是说我们把走两步点组的下标范围,也是更新成了最大的范围,不能再大了。这也是贪心的思想,每一个当前最优的状态的,是从上一个最优的状态更新过来的,上一个是最优状态,再走一步到达的这个点,肯定也是最优状态,这也就是这题动态规划+贪心的魅力所在吧。

2023-01-09 11:47:37 521

原创 LeetCode 43. 字符串相乘

【代码】LeetCode 43. 字符串相乘。

2023-01-08 15:53:15 50

原创 LeetCode 38. 外观数列

比较简单的一个模拟题,关键是花点时间读懂题意就可以了。

2023-01-08 11:34:04 82

原创 LeetCode36.有效的数独

没啥技术含量的模拟题。

2023-01-07 11:18:19 75

原创 LeetCode34.在排序数组中查找元素的第一个和最后一个位置

很经典的二分板子题,同时用到了我们的二分模板1和二分模板2。

2023-01-06 14:54:26 55

原创 LeetCode31.下一个排列

我们就停下不再继续了,此时我们再从已经找到了降序部分,也就是541,表明这是我们以23开头,所能达到的最大数字,接下来我们需要做的就是把23这个开头增大,增大到24 25之类的,然后后三位按照正序排列,此时得到的序列就符合题目的要求。所以之后我们从这一部分找出比3大,且离3最近的数字,也就是4,然后把3和4相互交换,也就是24531,最后再把531按照反序一下得到135,也就是24135,也就得到题中所要求我们按照字典序求出离23541最近的比它更大的数字,也就是24135。

2023-01-05 15:54:26 82

原创 【无标题】

这题用到了快速幂的思想,但是也不完全相同,具体都在代码注释里面。

2023-01-05 14:18:15 54

原创 LeetCode28. 找出字符串中第一个匹配项的下标

典型的kmp板子题,详细解答可以看我KMP相关帖子。

2023-01-05 09:48:49 94

原创 LeetCode26.删除有序数组中的重复项

【代码】LeetCode26.删除有序数组中的重复项。

2023-01-04 20:01:02 54

原创 LeetCode24.两两交换链表中的节点

这题好好画个交换流程图,每次交换过程需要维护三个指针,如图的dummy、a、b(这三个指针后续会移动)

2023-01-04 19:40:49 46

原创 LeetCode22.括号生成

利用这两个基本结论,我们可以每次放置左括号的条件是当前左括号的数目不超过。,每次可以放置右括号的条件是当前右括号的数目不超过左括号的数目。

2023-01-04 12:55:14 44

原创 LeetCode21.合并两个有序链表

经典数据结构题,不多说。

2023-01-04 11:56:35 38

原创 LeetCode20.有效的括号

计算器实现的基础,这种无脑用栈实现就可以了。

2023-01-03 18:04:58 43

原创 LeetCode19.删除链表的倒数第N个点

这题核心也就在于怎么找到倒数第k个点,其他也没啥了,建议在草稿纸上手动演算一下,结果就出来了。

2023-01-03 17:21:36 35

原创 LeetCode18.四数之和

LeetCode18.四数之和

2023-01-03 17:01:22 40

原创 LeetCode17. 电话号码的字母组合

典型的dfs题,不多阐述了,记得特判输入数字串为空的情况就可以了。

2023-01-01 10:53:27 41

原创 LeetCode16.最接近的三数之和

LeetCode16.最接近的三数之和

2022-12-31 17:13:46 52

原创 LeetCode15.三数之和

LeetCode15.三数之和,采用优化双指针算法进行求解

2022-12-31 16:18:33 65

原创 LeetCode14.最长公共前缀

【代码】LeetCode14.最长公共前缀。

2022-12-31 15:46:03 38

原创 LeetCode13.罗马数字转整数

LeetCode13.罗马数字转整数

2022-12-31 15:28:13 75

原创 LeetCode12.整数转罗马数字

LeetCode12.整数转罗马数字

2022-12-31 11:15:34 54

原创 LeetCode11.盛水最多的容器

【代码】LeetCode11.盛水最多的容器。

2022-12-31 10:00:18 305

原创 LeetCode9.回文数

第一种做法:转换成字符串,然后反转一遍看是否相等。第二种:数值方法,把原来的数值逐位拆解形成新的数。

2022-12-30 19:41:02 88

原创 LeetCode8.字符串转换整数(atoi)

力扣第八题,字符串转换整数(atoi)

2022-12-30 19:29:55 42

原创 LeetCode7.整数反转

【代码】LeetCode7.整数反转。

2022-12-30 15:41:02 38

原创 LeetCode6.Z字形变换

中间每行都是一样的,但是中间每行需要改成两部分,第一部分是"直线部分",也就相当于下面图中的。这题重点就在好好读题找规律了,整个Z字形阵分为。第二部分则是位于“斜线”上的位置,例如。行,首行和尾行分别是。等这种位置,它们是以。

2022-12-30 15:13:59 59

原创 LeetCode5.最长回文串

力扣第五题:最长回文串

2022-12-30 11:39:20 49

原创 LeetCode3.无重复字符的最长子串

过程特别像计算机网络里面的滑动窗口,解题用到了双指针算法,以及双指针算法的优化(利用单调性进行优化),每次i往后枚举的过程中,j不可能往左边走了,也只会不动或者向右边走,证明可以用反证法。

2022-12-30 11:05:46 89

原创 LeetCode2.两数相加

【代码】LeetCode2.两数相加。

2022-12-30 10:25:49 75

原创 LeetCode1.两数之和

力扣第一题

2022-12-30 10:12:17 38

原创 AcWing 868. 筛质数

两种方法筛选出质数

2022-10-27 18:31:26 124

空空如也

空空如也

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

TA关注的人

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