![](https://img-blog.csdnimg.cn/2020100609294860.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法分析与设计
最好的方法就是通过练习,算法分析通过习题和算法设计时的复杂度分析,算法设计通过编程做 OJ 提高。
yuhan_Li
这个作者很懒,什么都没留下…
展开
-
leetcode-135.分发糖果(Hard)(贪心算法Part2)
题目:n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。示例1:输入:ratings = [1,0,2]输出:5解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。示例2:输入:ratings = [1,2,2]输出:4解释:你可以分别给第一个、第二个、第原创 2022-04-16 16:33:16 · 963 阅读 · 0 评论 -
leetcode-455.分发饼干(Easy)(贪心算法Part1)
贪心算法:采用贪心的策略,即保证每次的局部是最优的,从而使全局最优。leetcode-455.Assign Cookies(Easy)题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大原创 2022-04-15 08:27:17 · 203 阅读 · 0 评论 -
利用动态规划实现最短路径和(适合小白看,看不懂你打我,附JS代码和C代码实现)
要求:利用动态规划实现最短路径和。Example:从起点到终点,只能向右或向上,要求找到最短的路径。(下图为了方面大家思考所以标明了行列和每段距离,实际情况可能会输入)动态规划思想:把原始问题分解为一系列子问题求解每个子问题仅一次,并将结果保存下来,以后用到时直接取,不重复计算,与此同时,算法效率提高自底向上计算适用:对于一类优化问题,可以分为多个相关子问题,子问题的解被重复使用(可参考:斐波那契数列,爬楼梯问题)首先我们标好每个坐标(中间的就不标了,太乱了看着)我们的目的是从(1,1原创 2020-11-21 20:17:11 · 927 阅读 · 0 评论 -
算法第三次作业-Problem C. 小飞侠的游园方案
时间限制 1000 ms内存限制 128 MB题目描述:经过抽签选择,小智将军第一个进入考场。 菜虫:(身上散射出华贵(?)的光芒)欢迎你,第一位挑战者!! 小智:……(走到菜虫身后,关灯)女王陛下,虽然我们国家现在很富裕,但也请您不要浪费电来用这么大功率的灯泡。 菜虫(汗):啊啊爱卿所言甚是那么,你的题目是……我们的情报组织探听到敌人的重要将领——小飞侠星期天会邀他的灵儿妹妹到公园去玩。公园里有很多娱乐项目,可并不是每一项他们都喜欢,所以他们对每一项都进行了“喜欢度”的评分。因为小.原创 2020-10-25 20:59:53 · 244 阅读 · 0 评论 -
算法第一次作业-Problem D. 安全的密码
题目描述众所周知,密码安全是互联网时代人们最为关心的事情之一。而 RSA 公钥加密算法是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击。其实 RSA 公钥加密算法的原理并不复杂,它基于一个十分简单的数论事实:将两个大素数相乘十分容易,而想要对其乘积进行质因数分解却极其困难,因此可以将乘积公开作为加密密钥。所以 RSA 算法很重要的一个过程就是得到两个大素数相乘结果。wchhlbt 和 Lazy_sheep 想要模拟一下 RSA 算法的加密过程。现在 wchhlbt拿原创 2020-10-08 11:52:01 · 593 阅读 · 0 评论 -
AC、WA、TLE、OLE、MLE、RE、PE、CE分别是什么意思?
这都属于OJ题即Online Judge 在线判题系统根据你所提交的答案 进行判断有以下几种结果:AC Accepted 通过WA Wrong Answer 答案错误TLE Time Limit Exceed 超时OLE Output Limit Exceed 超过输出限制MLE Memory Limit Exceed 超内存RE Runtime Error 运行时错误PE Presentation Error 格式错误CE Compile Error 无法编译...原创 2020-10-06 08:06:20 · 7315 阅读 · 0 评论 -
算法第一次作业-Problem E. 思维之花-方程
题目描述有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值> =1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。 提示:记方程f(x)=0,若存在2个数x1和x2,且x1< x2,f(x1)*(x2)< 0,则在(x1,x2)之间一定有一个根。想法:暴力枚举。这种一看就是数学的,而且很多数字,就原创 2020-10-05 20:34:00 · 788 阅读 · 0 评论 -
算法第一次作业-Problem B. 课堂作业-7-4
题目描述对于一个长为n的数组A0,A1,A2…An-1,定义这个数组的得分为(A0 xor A1)+(A1 xor A2)+(A2 xor A3)+…+(An-2 xor An-1) ,即相邻两项的异或值的加和,比如数组1 1 2 2的得分为(1 xor 1) + (1 xor 2) + (2 xor 2) = 0+3+0 = 3现在你可以重新排列这个数组,问最大得分是多少当我们尝试着做这个题的时候,会发现比较难于实现的部分是输入多个数值后找全排列比较难。但我们就像样例说明中的,用C++的一个函数。原创 2020-10-05 16:14:51 · 548 阅读 · 0 评论 -
算法第一次作业-Problem C. Superprime
题目描述农民约翰的母牛总是生产出最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说:7 3 3 1全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。7331 被叫做长度 4 的特殊质数。写一个程序对给定的肋骨的数目 N (1< =N< =8),求出所有的特殊质数。数字1不被看作一个质原创 2020-10-04 08:01:33 · 746 阅读 · 0 评论 -
算法第一次作业-Problem A. 因式分解
题目描述小明的数学老师给小明布置了一道数学题,让小明求2000以内所有正因子个数为K的正整数。例如18的正因数为1,2,3,6,9,18首先是数学知识:所谓N的正因数,就是指在 1到N这个范围中(包括1和N) 能被N整除后为0的数字。例如:N=18 时,18%10 18%20 18%30 18%60 18%90 18%180所以1、2、3、6、918 就是18的正因数。# include <stdio.h># i原创 2020-10-03 20:52:02 · 337 阅读 · 0 评论