leetcode
IcyFeather
这个作者很懒,什么都没留下…
展开
-
LeetCode 最小栈
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 示例: 输入: [“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”] [[],[-2],[0],[-3],[],[],[],[]] 输出: [null,null,null,null,-3原创 2020-08-15 14:55:04 · 114 阅读 · 0 评论 -
2 Keys Keyboard
题目其实就是求一个数分解出来的质因数的和 为什么? 首先我们复制粘贴不管怎么操作,A->B操作之后,B一定是A的倍数,这就证明了这个题的数可以通过一串数字的乘积的形式来表达 假设这个数可以分解成(i-1)(j-1),由于(i-1)(j-1)>=1,化简得ij>=i+j,所以证明了如果能拆成乘积,一定要比和的形式更优。 那么为什么要是质因数的乘积呢? 当然是因为拆成质因数拆的更多,上面已经证明,拆的越多,结果越优,所以这个题只需要求分解后所有质因数的和就可以了 int res=0; for(原创 2020-08-13 09:47:16 · 118 阅读 · 0 评论 -
Integer Break
leetcode integer break 这里有一个很有意思的结论: 当拆分一个数的时候,尽可能拆出来多的3,剩下的全是2就可以保证拆分出来数的乘积最大 if(n<=3)return n-1; int res=1; if(n%3==1)res*=4,res-=4; if(n%3==2)res*=2,res-=2; while(n)res*=3,res-=3; return res; ...原创 2020-08-13 09:27:00 · 63 阅读 · 0 评论 -
Bulb Switcher
leetcode bulb switcher 分析一下题目 题目关键是要求每个灯被按了多少次开关,而我们会发现,开关按了多少次和这个数有多少个因数相关,如12号灯:12的因数有1,2,3,4,6,12.于是在这些编号对应的轮时都会被按。 我们发现一个规律,只有完全平方数的因数是奇数个,其余数由于因数分解时一定是一对一对的因数,所以因数都是偶数个。 于是最后只有完全平方数的灯亮着,其余的都灭。 答案就是简简单单的 sqrt(n) (自动向下取整) ...原创 2020-08-13 09:13:58 · 80 阅读 · 0 评论 -
Poor Pigs - leetcode
这题用信息熵的知识算下界 选k头猪,每头猪有五种状态,可以传递5个信息: 0-15死亡 15-30死亡 30-45死亡 45-60死亡 不死亡 k头猪可以表示5^k种状态 必须让5^k>=n,才能保证解出来 求满足这个式子的最小值即可,得出的k即为下界 所以具体如何操作呢? 由于有五种状态,我们选择五进制数对应0-n-1的每个数 将0-n-1换成五进制数一共有k位,k位里面每位都对应一头猪 如果数字为0,则第0分钟的时候喂,为1则在第15分钟喂,每头猪都这样喂对应的毒药 假如1142(5)号为毒药原创 2020-08-12 17:06:10 · 245 阅读 · 0 评论 -
Minimum Moves to Equal
leetcode Minimum Moves to Equal问题 邮局问题,找到中位数即可 为什么要找中位数? 可以首位两两配对,发现可以转换到数轴上,要想要绝对值最小,就是让点取到数轴上两点之间。当每组配对都是取到两点之间即可,容易看出中位数满足这个条件(不管是奇数个数还是偶数个数) 代码用到STL库中nth_element函数 nth_element(a,a+k,a+n),函数只是把下标为k的元素放在了正确位置,对其它元素并没有排序,当然k左边元素都小于等于它,右边元素都大于等于它,所以可以利用这个原创 2020-08-12 16:37:25 · 108 阅读 · 0 评论 -
Missing Number
要求:在线性时间内完成 方法一: 求和作差 求出 0 到 n 的和,然后再计算原数组的和,作一个差就是缺失的数字了。 由于数组里每个数字只被访问了一遍,故为线性时间。 ```cpp public int missingNumber(int[] nums) { int sum1 = 0; for (int n : nums) { sum1 += n; } // 等差公式计算 1 到 n 的和 int sum2 = (1 + nums.length) *原创 2020-08-12 16:07:58 · 232 阅读 · 0 评论