算法
Notteaquail
学生党,日记式博客
展开
-
大数 组合数C(n,m)算法
算法 Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n−1)!∀n∈N 是通过 Euler integral Γ(z)=∫0∞tz−1e−tdt . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e...原创 2019-04-05 17:40:34 · 4685 阅读 · 0 评论 -
动态规划经典问题——跳石板
一开始想到的方法是暴力递归,遍历当前石板序号N的约数,若对约数k,有N+k到M的解决方案,计算其步数,然后与当前最小步数比较找出最小步数。果不其然,暴力算法的时间复杂度很大,当数据量达到100000级别时,就会超时。 看评论区大佬的动态规划算法,恍然大悟! dp数组记录到达每一块石板的最小步数,初始化为INT_MAX,若最后最小步数为INT_MAX,则视为不可达,dp[N]=0,i从N开始遍历到...原创 2019-08-20 01:20:54 · 331 阅读 · 0 评论 -
字节跳动2018笔试附加题,二阶数字魔方
魔方的旋转方式大致可分为三个(顺时针可以通过对应逆时针旋转三次实现),右面(Y)逆时针,后面(X)逆时针,上面(Z)逆时针,封装成三个函数,分析发现,所有的旋转可以归结为一圈八个块的位置轮转(函数zheng)和一个侧面四个小块的位置轮换(函数ce)。 不超过5次的操作,可以通过一个类似深度优先遍历操作实现(这里会有很多重复,暂时没有优化) 代码如下,最后只通过了10%测试用例,找不大问题在哪,...原创 2019-08-17 23:30:33 · 548 阅读 · 0 评论