算法
那个小馒头
未来邮你决定
展开
-
0-1背包问题(python)
https://www.jianshu.com/p/25f4a183ede5[原文]转载 2020-07-23 13:54:51 · 326 阅读 · 0 评论 -
LeetCode剪绳子问题(动态规划求解)
给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/jian-sheng-zi-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业原创 2020-07-21 10:45:37 · 539 阅读 · 0 评论 -
LeetCode-汉诺塔问题
链接:https://leetcode-cn.com/problems/hanota-lcci在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制:(1) 每次只能移动一个盘子;(2) 盘子只能从柱子顶端滑出移到下一根柱子;(3) 盘子只能叠在比它大的盘子上。请编写程序,用栈将所有盘子从第一根柱子移到最后一根柱子。解题思路:递归与分治n = 1原创 2020-06-18 16:45:12 · 428 阅读 · 0 评论 -
打家劫舍(动态规划)
打家劫舍(Ⅰ)你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。考虑所有可能的抢劫方案过于困难。一个自然而然的想法是首先从最简单的情况开始。记:f(k) = 从前 k 个房屋中能抢劫到的最大数额,A_iA i = 第 i 个房屋的钱数。首先看 n = 1 的情况,显然原创 2020-05-24 16:02:29 · 221 阅读 · 0 评论 -
常用排序算法的c++语言实现
1.冒泡排序:依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。2.选择排序:第一次从待排序的数据元素中选出最小(大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。...原创 2019-10-15 19:17:42 · 449 阅读 · 0 评论 -
常用排序算法的c++语言实现(2)
承接上一篇的常用排序算法的c++语言实现**4.希尔排序:**把记录按下表的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止**5.快速排序:**通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。**6.归并排...原创 2019-09-20 10:29:03 · 200 阅读 · 1 评论