
Leetcode
文章平均质量分 89
GTMer
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode Brainteaser类(292 319 777) 题解
292题:Nim Game 不难看出递推式:num[i]表示有i个石子时能不能赢。堆中有i个石子时,赢的条件是i-1、i-2和i-3个石子有一种不能赢,即能找到一种对方失败的拿法即可。纸上写几个就会发现结果的周期为4,是4的倍数就会输,其他都能赢。所以写出程序。bool canWinNim(int n) { if (n % 4 == 0) return false;...原创 2018-03-24 21:11:15 · 443 阅读 · 0 评论 -
LeetCode Reservoir Sampling类(382 298) 题解
382:Linked List Random Node两种解法:一种借鉴了洗牌算法的思想,即随机找出自己和之后一个位置,和自己互换。在构造函数里获取链表长度,复杂度O(n)。然后getRandom里获取[0, n-1)的随机数,找到该位置的值,复杂度期望O(n/2)。提交后Runtime 64ms。class Solution {private: ListNode* listHead;...原创 2018-03-25 14:39:03 · 281 阅读 · 0 评论 -
LeetCode Minimax类(375 464 486) 题解
375:Guess Number Higher or Lower II 首先找规律,以为是使左右数字和的差值最小。结果发现不是,例如7的情况,首先选择的数是4而不是5,最终代价是10。然后回溯+剪枝暴力找每一段区间需要的最小代价,结果超时。再一想发现回溯的过程中有重复子问题,所以加一个备忘录。Runtime 6ms,比dp要快,原因是剪枝较多。int getMoneyAmount(int beg...原创 2018-03-26 00:26:28 · 645 阅读 · 0 评论 -
LeetCode Queue类(363 621) 题解
363:Max Sum of Rectangle No Larger Than K 首先想到暴力,保存累加和,然后四重循环遍历左上和右下角的x,y坐标,复杂度O((nm)^2),本以为铁定超时,结果居然AC了。。。然后看了discussion,更快的解时间复杂度是O(n * n * m * logm),空间复杂度O(m),假设m >= n。怎么做到呢,先从几个问题讲起。Q1: 一维数组中找最...原创 2018-03-27 12:20:41 · 767 阅读 · 0 评论