算法编程题
姑娘加油
加油
展开
-
编码字典序排序
/** * 假定一种编码的编码范围是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的Index为2,以此类推。...原创 2018-11-21 17:49:37 · 2614 阅读 · 0 评论 -
全排列问题
给出一组数,输出它的全排列比如3, 4, 5。它们的全排列为3 4 5、3 5 4、 4 3 5、 4 5 3、 5 3 4、 5 4 3 六组数。比如1, 2, 3。它们的全排列为1 2 3、1 3 2、2 1 3、2 3 1、3 2 1、3 1 2六组数我们可以看出:(3,4,5)的全排列 = 3,(45)的全排列+4,(35)的全排列+5,(4,3)的全排列(1,2...原创 2018-11-22 20:14:57 · 206 阅读 · 0 评论 -
Java实现最长上升子序列(动态规划)
问题:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为O(n2) 。思路:我们可以使用动态规划来进行解答1,设置dp[]数组...原创 2019-06-07 17:43:53 · 6321 阅读 · 1 评论 -
Java实现最小路径和(动态规划)
问题:/** * 给定一个包含非负整数的 mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 * * 说明:每次只能向下或者向右移动一步。 * * 示例: * * 输入: * [ * [1,3,1], * [1,5,1], * [4,2,1] * ] * 输出: 7 * 解释: 因为路径 1→3→1→1→1 的总和最小。...原创 2019-06-08 15:10:59 · 1741 阅读 · 2 评论 -
Java实现地下城游戏(动态规划)
题目:一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康...原创 2019-06-08 16:45:48 · 2003 阅读 · 2 评论