算法
文章平均质量分 84
#Teddy
这个作者很懒,什么都没留下…
展开
-
贪心算法训练
2021-04-10 19:50:25跳跃游戏II给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。假设现在在位置kkk,那么能跳的步数step≤nums[k]step \leq nums[k]step≤nu原创 2021-04-10 22:01:09 · 98 阅读 · 0 评论 -
并查集--食物链
食物链动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是"1 X Y",表示X和Y是同类。第二种说法是"2 X Y",表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。1) 当前的话与前面原创 2021-04-03 12:57:26 · 51 阅读 · 0 评论 -
《挑战程序设计竞赛》1-2章--初级篇例题
1. Antsnnn只蚂蚁以每秒1cm的速度在长为L的杆子上爬行。每个蚂蚁的朝向不知,当两只蚂蚁相遇时,会各自朝相反方向爬行。问所有蚂蚁爬到杆子的尽头的最短时间和最长时间。假设有两只蚂蚁这样运动,当两只蚂蚁相遇时,会朝相反方向爬行,你其实可以发现,蚂蚁之间是没有区别的,所以可以把相遇后往相反方向走看成相遇后继续走。那么最长时间就是max{max1≤i≤n{xi,L−xi}}max\{max_{1 \leq i\leq n}\{x_i,L-x_i\}\}max{max1≤i≤n{xi,L−xi原创 2021-04-02 13:28:22 · 328 阅读 · 0 评论 -
分治算法例题
外星密码题目:给你一个字符串,其中[XS][XS][XS]表示XXX个SSS,SSS表示字符串,比如[2abc]=abcabc[2abc]=abcabc[2abc]=abcabc。括号可以嵌套和并列,比如[X1[X2[X3S]]][X_1[X_2[X_3S]]][X1[X2[X3S]]],[X1S1][X2S2][X_1S_1][X_2S2][X1S1][X2S2]和[X1S1[X2S2][X3S3]][X_1S_1[X_2S_2][X_3S_3]][X1S1[X2S2][X3S3.原创 2021-03-16 20:18:41 · 197 阅读 · 0 评论 -
Fibonacci数列的求法及矩阵快速幂相关例题
根据斐波那契数列的递推式,我们可以有几个算法来求解第nnn项的值。Fib(n)={1n<2Fib(n−1)+Fib(n−2)n>=3 Fib(n)=\begin{cases}1 &n<2 \\Fib(n-1)+Fib(n-2) &n>=3\end{cases}Fib(n)={1Fib(n−1)+Fib(n−2)n<2n>=3递归法可以很容易写出递归的算法。/*效率很低,包含很多重复计算*/int Fib(int n) {原创 2021-03-12 20:08:45 · 217 阅读 · 0 评论