![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程题
文章平均质量分 78
内心毫无波动甚至还想笑
这个作者很懒,什么都没留下…
展开
-
字母编码
读懂别人的思路,然后自己写一遍题目描述假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的Index为0,aa的Index为1,aaa原创 2017-08-29 17:12:12 · 621 阅读 · 0 评论 -
袋鼠过河
题目描述一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表袋鼠下一跳最多能够跳5米,如果为0,就会陷进去无法继续跳跃。河流一共N米宽,袋鼠初始位置就在第一个弹簧上面,要跳到最后一个弹簧之后就算过河了,给定每个弹簧的力量,求袋鼠最少需要多少跳能原创 2017-08-29 14:58:39 · 948 阅读 · 1 评论 -
0-1背包问题(采药)
import java.util.Scanner;/** * 0-1背包问题(采药问题) * 问题:在规定时间t内,采摘总价值最大的草药,并输出最大总价值(草药一共m颗) * 输入 * 第一行:t m (能够采药的总时间t, 山洞里共有的草药株数) * 接下来m行: * time price * time price * ... * 即每颗草药需要采摘的时间time 每颗草药的原创 2017-08-30 17:31:20 · 962 阅读 · 0 评论 -
动态规划(三角形求路径最大和)
//递归求法,写递推公式/** * 动态规划 * 给定一个三角形,求一条从顶部到底部的路径,这条路径所有元素和最大,输出最大值 */package dp;import java.util.Scanner;public class Main { /** * 7 * 3 8 * 8 1 0 * 2 7 4 4 *原创 2017-08-31 15:42:31 · 3595 阅读 · 0 评论 -
最长上升子序列的长度
1)/** * 最大上升子序列的长度 * 给定一个无序的序列,求其最大上升子序列的最大长度 * 子序列要为上升并且长度最长 * 思路: * 序列一共k个点,{a1, a2, ..., ak} 以每个点为终点,这样就有k个状态,分别讨论它们的最长上升子序列,然后取最大的情况 * 维护一个一维数组maxLen[k],表示以序列元素{ak}为终点时的最长上升子序列 * 递推公式: *原创 2017-09-01 09:45:00 · 592 阅读 · 0 评论 -
最公共长子序列的长度
/** * 动态规划 * 最长公共子序列 * 给定2个字符串 s1, s2, 求2个串的最大公共子序列,子序列的字母能在2个串中找到,并且顺序相同 * 解题思路: * 求解子问题.写出递推公式 * maxLen(i, j)表示s1左边的i个字符组成的序列和s2左边的j个字符组成的序列的最大公共子串的长度 * 讨论边界条件: * maxLen(i,0) = 0 * maxLen(0原创 2017-08-31 18:17:38 · 319 阅读 · 0 评论 -
0-1背包问题(二维数组动态规划)
/** * 0-1背包问题 * 背包的总容量为c * 有n个物品,体积为v[i],价值为w[i] * 求在背包能装进去的前提下,能装入的最大价值,和装入物品的编号 */public class Main { public static void main(String[] args) { int []w={2,2,6,5,4}; //物品重量 int []v原创 2017-08-31 12:15:27 · 1555 阅读 · 0 评论 -
硬币表示
1)输入最大情况100000 ,本地IDE运行时间大概在 2093毫秒,在线编辑器要求在3秒内,但是总是提示超时/** * 硬币表示 * 题目描述:4种硬币,币值分别为 1 5 10 25 给定n,使用这些币种来表示n,求最对的表示方法 * 思路完全套用0-1背包问题,动态规划 * 讨论使用到第i种币表示j分时,能够表示的最多方法数量,涉及到2个自变量,使用二维数组维护讨论结果max原创 2017-09-01 14:30:40 · 278 阅读 · 0 评论 -
n皇后
1)回溯法,超时/** * n皇后问题 * 每一行每一列,同一斜线上不能出现2个皇后 * 解题思路: * 回溯法 * 每列只能放1个皇后,每列就有n种方法,n列一共就是n^n种方法,这么多方法种可定包含了所有n皇后的解。当第一列放一个皇后的时候,就会产生一颗解空间树,由此树的第二层会有n个节点,第三层会有n*n个节点... * 树的第n层会有n^n-1个节点,,这样就构成了一颗解空原创 2017-09-03 09:54:42 · 363 阅读 · 0 评论