2018年11月

弱智题目,只能怪自己rust水平不行。
哎,记住要移除掉最后一个元素不要用remove这么傻逼的方式了。直接pop掉。
就是把给的数组里的元素一个个push进另一个就行了,如果遇到相对方向的,把新数据的back pop掉。



- 阅读剩余部分 -

整数拆分问题。提交完发现,大家这的都很不好,感觉我写的是最好的(
其实我也是上维基抄的。但是发现这个写法是真的聪明。

其实就是求分割函数P(n)的值。
根据公式Pk(n)={1..k}Pk(n-k)可以得到第一种解法。
这个公式是能推导出来的。简单来说就是Pk(n) = Pk(n+k),相当于把把n+k个石头放k个罐子里,其中可以先放k个进去,这样就是一个罐子一个石头,剩下的就是P(n)。




- 阅读剩余部分 -

题目很简单,求斐波那契数列的和的四倍。
我一开始拿rust写的时候,想的是直接上矩阵快速幂,结果写了个矩阵相乘的时候就溢出了。我还在生气这个rust版本太低了,没有u128。其实根本没必要这么复杂,只要写一个斐波那契数列递推循环,在循环中把和加起来就行了。
大神都是fold写的。
我用py版本写了一个快速幂也过了,py的大数还挺好使的,这都不会溢出。




- 阅读剩余部分 -

题目
题目也很简单,类似于2-sum问题,但是有个最近距离的说法。
就是选两个隔的最近的数。如果距离一样就选Index小的。
这样就给了优化空间。
如果target-i不在set里,就把target-i insert进set里,i继续在nums里走,第一个找到的肯定是距离最近的。

本来我写的都是超时的。。后来仔细想了一下重新写了一下才懂。
与一般的2-sum有点不同






- 阅读剩余部分 -