
算法
晓处微寒
这个作者很懒,什么都没留下…
展开
-
剪绳子
剪绳子 题目描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],…,k[m]。请问k[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 输入描述: 输入一个数n,意义见题面。(2 <= n <= 60) 输出描述: 输出答案。 示例1 输入 8 输出 18 思路:対可能出现的分段数进行一个遍历,对于某一个分段数尽可能分原创 2020-09-12 23:42:19 · 150 阅读 · 1 评论 -
兔子问题
Java兔子问题 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? * 思路:兔子的对数为1,1,2,3,5,8,13…*。是不是很熟悉,这不就是斐波拉契数列咩。 代码如下: package 剑指Offer; public class RabbitInMonth { public static int Sum(int month) { int sum=0; if(month==1||month=原创 2020-09-12 22:45:14 · 159 阅读 · 0 评论 -
贪心法求解背包问题
问题描述:7个物品,重为{2,3,5,7,1,4,1},价值为{10,5,15,7,6,18,3},背包容量W=15,求最优解。 思路:将物品按单重价值降序排列,装满为止。 C++代码: #include<iostream> #include<iomanip> using namespace std; int KnapSack(int w[],int v[],in...原创 2018-10-27 16:55:18 · 3992 阅读 · 2 评论 -
破案——蛮力法
1、某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析: (1)A、B至少有一人作案; (2)A、E、F三人中至少有两人参与作案; (3)A、D不可能是同案犯; (4)B、C或同时作案,或与本案无关; (5)C、D中有且仅有一人作案; (6)如果D没有参与作案,则E也不可能参与作案。试设计算法将作案人找出来。 #include<iostream> using namespa...原创 2018-12-17 15:18:23 · 1148 阅读 · 0 评论 -
N枚硬币问题
问题定义:已知N枚硬币质量,其中有一枚假币(或轻或重),请找出假币 思路: 若N<3,无法判断 若范围缩小至一枚硬币,拿一枚真币比较轻重 若范围缩小至两枚硬币,拿一枚真币与其中一枚比较轻重,缩小范围至一枚硬币 若范围在三枚以上,将硬币三分,左边num/3枚,右边num/3枚,其余放中间(num为范围大小)。 4.1若左边硬币质量等于右边,缩小范围到中间 ...原创 2018-12-28 11:40:23 · 2077 阅读 · 4 评论