算法
文章平均质量分 88
@阿证1024
这个世界上最好的语言就是你的实力。
展开
-
Java数据结构和算法之分治算法案例详解
汉诺塔的传说汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。汉诺塔游戏的思路分析:1.如果是有一个盘, A->C2.如果我们有 n >= 2 情况,我们总是可以看做是两个盘 1.最下边的盘 2. 上面的盘1)先把 最上面的盘 A->B2原创 2020-05-22 17:59:02 · 231 阅读 · 0 评论 -
数据结构与算法课程设计
一、题目0-1背包问题:给定n个重量为w1,w2,w3,…,wn,价值为v1 ,v2 ,v3,…,vn的物品和容量为C的背包,求这个物品中一个最有价值的子集,使得在满足背包的容量的前提下,包内的总价值最大0-1背包问题指的是每个物品只能使用一次。二、目的课程设计的目的是训练学生灵活应用所学数据结构知识,独立完成问题分析、总体设计、详细设计和编程实现等软件开发全过程的综合实践能力。巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。课程设计要求独立完成一个较为完整原创 2021-05-31 13:17:11 · 1918 阅读 · 1 评论 -
LeetCode-7.整数反转,击败100%
解题思路题目力扣上面有,而这个题的主要要求是结果的范围要符合Int类型的范围。如果是可以遍历的数组、字符串啥的可以借助栈实现反转,So Easy。可是这个题目是整数,那么可以借助此思想来模拟栈。如何模拟? 如下:x为要反转的整数// pop operationtmp = x % 10// push operationres = res * 10 + tmp 在给res赋值时,先判断新产生的结果是否符合要求,符合要求则赋值,否则返回0。res的比较,我利用的是long型比较,因为如.原创 2020-08-03 19:54:33 · 262 阅读 · 0 评论 -
Java数据结构和算法之动态规划案例详解
应用场景-背包问题背包问题:有一个背包,容量为4磅 , 现有如下物品1)要求达到的目标为装入的背包的总价值最大,并且重量不超出2)要求装入的物品不能重复动态规划算法介绍1)动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法2)动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。3)与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往原创 2020-05-24 14:51:33 · 338 阅读 · 0 评论 -
针对解决递归问题的心得
最近学习了这个递归和回溯算法,接触到两个经典的问题:一是走迷宫问题,二是八皇后问题。通过对这两个题的解决呢,我发现了解决递归问题的一些思路,简单总结下。我把它分成三部分,可以用一个式子表示,如下:递归问题解决思路 =解决这个问题的策略 +一个判断方法 +回溯条件例如迷宫问题,首先我应该有个走棋的策略:先上再右再下再左或者是先下后右再上再左等等,然后根据这个策略去一步一步的向...原创 2020-05-01 16:18:48 · 204 阅读 · 0 评论 -
算法分析与设计6-7章节测试
1【单选题】n个工件加工顺序问题依据贝尔曼法则设计的动态规划算法的时间复杂度为()A、O(n)B、O(n 2)C、O(nlogn)D、O(logn)我的答案:C 得分: 10.0分2【单选题】规模为n,背包容量为W的0-1背包问题的动态规划算法的时间复杂度为()A、O(n 2)B、O(n2 n)C、O(nW)D、O(W 2)我的答案:C 得分: 10.0分3【单选题】0-1...原创 2020-04-22 08:38:24 · 1287 阅读 · 0 评论 -
算法分析与设计2-5章节测试
1【单选题】找零钱问题的贪心策略是()A、面值大的钱币优先找出B、面值小的钱币优先找出C、面值小于待找钱数且面值最大的优先找出D、以上都不对正确答案: C2【单选题】最优装载问题的贪心策略是()A、体积大的集装箱优先找出B、体积小的集装箱先找出C、重量大的集装箱优先装D、重量小的集装箱优先装**正确答案: D **3【单选题】会场安排问题的最好的贪心策略是()A、开始时间...原创 2020-04-22 08:32:34 · 1272 阅读 · 0 评论 -
贪心算法+贪心策略:判断子序列
题目描述为:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示...原创 2020-03-03 15:18:58 · 526 阅读 · 0 评论 -
统计数字问题实现
统计数字问题:一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如第6页用6表示而不是06或006。数字统计问题要求对给定书的总页码,计算出书的全部页码中分别用到多少次数字0,1,2,3,…9。输入:自然数n输出:0-9每个数字出现的次数请设计算法,用python编程实现。要求给出分析过程,程序代码,测试数据,测试结果。def g...原创 2020-02-23 15:00:53 · 1178 阅读 · 0 评论 -
求下列函数的渐进表达式O 3n2+10n; n2/10+2n; 21+1/n; logn3; 10log3n(最后一个表达式里面是3的n次方)
1.3n2+10n=O(n^2);2.n2/10+2n=O(2n);3.21+1/n=O(1);4.logn3=O(logn);5.10log3n=O(n);另外给大家补充点常见的表示:原创 2020-02-17 18:10:24 · 34900 阅读 · 2 评论