自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [LeetCode每日1题][困难] 460. LFU缓存

文章目录题目哈希表 + 平衡二叉树 - O(logN)双哈希表 - O(1)参考题目460. LFU缓存 - 力扣(LeetCode)哈希表 + 平衡二叉树 - O(logN)一个平衡二叉树用于对结点的频率和时间从大到小排序,这里时间用一个变量time维护即可,每次使用时++time。一个哈希表用于查找结点。struct Node { int cnt, time, key, ...

2020-04-05 16:36:23 141

原创 [LeetCode每日1题][困难] 42. 接雨水

文章目录题目基本解法动态规划单调栈双指针参考题目42. 接雨水 - 力扣(LeetCode)基本解法每个柱子能装的水量取决于它左右两侧柱子高度的最小值。对每个柱子进行向左向右遍历找最小值即可。int trap(vector<int>& height){ int ans = 0; int size = height.size(); for (...

2020-04-04 17:58:29 164

原创 [LeetCode每日1题][中等] 289. 生命游戏

文章目录题目模拟法(原地)题目289. 生命游戏 - 力扣(LeetCode)模拟法(原地)普通解法没什么难度,需要另开一个数组,O(mn)空间复杂度。原地算法:把之前死的后来活的,和之前活的后来死的标记一下,最后再处理一下即可。class Solution{public: void gameOfLife(vector<vector<int>> &...

2020-04-02 17:58:37 196

原创 [LeetCode每日1题][简单] 面试题62. 圆圈中最后剩下的数字

文章目录题目数学+递归解法暴力解法参考题目面试题62. 圆圈中最后剩下的数字 - 力扣(LeetCode)数学+递归解法长度为n的序列中,我们要删除的第一个元素位置是m % n。删除完第一个元素后,得到的是一个长度为n - 1的子序列,假设这个子序列的下标从0开始,如果我们能知道这个子序列进行删除操作后,最后剩余的元素下标x,那么原序列最后剩余的元素下标应为(m % n + x) % n...

2020-03-30 15:22:45 232

原创 [LeetCode每日1题][中等] 1162. 地图分析

文章目录题目回溯DFS解法多源BFS解法DP法参考题目1162. 地图分析 - 力扣(LeetCode)回溯DFS解法class Solution{ int N; vector<vector<int>> dist; // 存放结点到陆地的最短距离 vector<vector<int>> *grid;public...

2020-03-29 15:18:58 170

原创 [LeetCode每日1题][简单] 198. 打家劫舍 / 面试题 17.16.按摩师

文章目录题目动态规划解法复杂度题目俩题是一样的面试题 17.16. 按摩师 - 力扣(LeetCode)198. 打家劫舍 - 力扣(LeetCode)动态规划解法dp值表示到目前为止可以收获的最高金额,到一个新房屋i时,有两种选择偷窃,该点dp值等于该点金额+dp[i-2]不偷窃,该点dp值等于dp[i-1]选收益最大的那个即可。dp值可以存在数组里,注意到我们只需...

2020-03-24 16:42:47 167 1

原创 [LeetCode每日1题][中等] 945. 使数组唯一的最小增量

文章目录题目暴力解法计数补偿法参考题目945. 使数组唯一的最小增量 - 力扣(LeetCode)暴力解法很容易想到的一个解法是排序,对A[i-1] >= A[i]的情况,把A[i]变成A[i-1]+1,结果+=步长即可。但这样做很低效,时间复杂度为O(NlogN)。class Solution {public: int minIncrementForUnique(ve...

2020-03-22 11:34:44 165

原创 [LeetCode每日1题][中等] 365. 水壶问题

文章目录题目数学解法深度优先搜索参考题目365. 水壶问题 - 力扣(LeetCode)数学解法裴蜀定理:对于两个数x,y, 存在a,b使得ax+by = z成立当且仅当z是x与y最大公因数的倍数。class Solution {public: bool canMeasureWater(int x, int y, int z) { if (x + y &l...

2020-03-21 15:12:42 285

原创 [笔记]二分查找的几种写法

文章目录基本形式需要访问右邻居需要访问左右邻居C++中的二分查找参考基本形式left和right均为索引值循环条件:left <= right向左查找:right = mid-1向右查找:left = mid+1查找条件可以在不与元素的两侧进行比较的情况下确定int binarySearch(vector<int>& nums, int target){...

2020-03-14 14:51:58 285

原创 [LeetCode每日1题][中等] 300. 最长上升子序列

文章目录题目DP解法思路复杂度分析实现贪心+二分解法思路复杂度分析实现参考题目300. 最长上升子序列 - 力扣(LeetCode)DP解法思路开一个长度与原数组相同的数组dp,初始值dp[0]=1。dp数组元素的含义是:到当前索引为止,最大的递增子序列长度。接下来开始遍历数组,设当前索引为index,在0..index范围内,找出小于当前元素的那些元素,它们对应的dp值中的最大值+1...

2020-03-14 14:26:29 153

原创 [笔记]最大公因数与最小公倍数算法

最大公因数(Greatest Common Divisor)int gcd(int a,int b) { if(b == 0) return a; return gcd(b,a%b);}也可以直接使用C++中的__gcd()函数最小公倍数(Least Common Multiple)int lcm(int a,int b) { return a*b/gcd(a,b);}...

2020-03-13 13:00:53 404

原创 [LeetCode每日1题][简单] 169. 多数元素

文章目录题目Boyer-Moore 投票算法思路复杂度分析实现哈希表解法思路复杂度分析实现其它解法分治法实现排序法随机算法参考题目链接Boyer-Moore 投票算法思路摩尔投票法,遇到相同的数,就投一票,遇到不同的数,就减一票,最后还存在票的数就是众数。复杂度分析O(n)实现class Solution {public: int majorityElement(ve...

2020-03-13 10:23:28 146

原创 [LeetCode每日1题][简单] 1013. 将数组分成和相等的三个部分

文章目录题目前缀和解法思路复杂度分析实现优化C++复习参考题目1013. 将数组分成和相等的三个部分 - 力扣(LeetCode)前缀和解法思路遍历数组,并维护一个前缀和数组preSum,方便后面求区间和数组和sum = preSum[size]-1如果sum%3 != 0 返回false遍历preSum,寻找preSum[i] == sum/3,如果i不存在,返回false...

2020-03-11 10:46:41 227

原创 [LeetCode每日1题][中等] 322. 零钱兑换

文章目录题目DFS+贪心+剪枝解法思路实现DP解法(自上而下)思路实现DP解法(自下而上)思路实现C++复习std::sort的用法其他参考题目题目链接DFS+贪心+剪枝解法思路一看到这种组合问题,就想到了DFS,并且想到了一个优化点:对coins排序,从大到小进行搜索,搜索到一种解法,直接返回结果,也就是结合贪心法。示例1:coins = [1,2,5] amount = 11...

2020-03-08 16:40:25 249

原创 [LeetCode每日1题][中等] 面试题59 - II. 队列的最大值

文章目录题目C++复习 (std::queue)暴力解法题目题目地址官方题解C++复习 (std::queue)函数签名作用void std::queue::push(T)将元素插入队尾void std::queue::pop()将队首元素移出队列T std::queue::front()返回队首元素T std::queue::back()返...

2020-03-08 12:55:00 162

空空如也

空空如也

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

TA关注的人

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