
算法
文章平均质量分 79
月光下一只赏月的猪
这个作者很懒,什么都没留下…
展开
-
2018届实习-阿里巴巴内推编程题
对于一个由一位十进制整数构成的二叉树,如果深度不超过4,可以用一个三位十进制整数构成的数组表示,具体规则如下:1、百位数表示树的层次L,1<=L<=4;十位数表示在该层次中的位置P,1<=P<=8;个位数表示数值V。2、数组里,L一定是单增的,也就是说后一个数的L大于等于前一个数的L;3、对于同一个L,P也是单增的,就是说在L不变的情况下,后一个数的P大于等于前一个数的P。例如:[ 113, 215原创 2018-03-07 17:02:35 · 2608 阅读 · 3 评论 -
堆排序之JAVA实现
堆是一种特殊的树形数据结构,通常提到的堆都是指一棵完全二叉树,根节点的值小于(或大于)两个子节点的值,同时,根节点的两个子树也分别是一个堆。 堆排序是一种树形选择排序,在排序过程中,将R[1…n]看作一棵完全二叉树的顺序存储结构,利用完全二叉树中父节点和...原创 2018-05-31 16:27:59 · 1015 阅读 · 0 评论 -
【华为2018年校园招聘】软件开发---跳跃比赛
题目描述 给出一组正整数,你从第一个数向最后一个数方向跳跃,每次至少跳跃1格,每个数的值表示你从这个位置可以跳跃的最大长度。计算如何以最少的跳跃次数跳到最后一个数。输入描述: 第一行表示有多少个数n 第二行开始依次是1到n个数,一个数一行输出描述: 输出一行,表示最少跳跃的次数。示例1 输入 7 2 3 2 1 2 1 5 输出 3说明 7表示接下来...原创 2018-04-10 20:21:13 · 4046 阅读 · 1 评论 -
2018春招京东JAVA后台实习编程题第一题
采用动态规划的思路求解以ACCA为例: 解题思路:依次读取字符,A,C,C,A。做如下操作读取A: A有取或者不取两种情况,那么结果是:A或者null, 判断是否有回文串,依题目可知:A为回文串,则次数+1;然后将A和null加入队列中;读取C: 将C和队列中的所有字符串相加,得到:AC和C 判断是否有回文串,依题目可知:C为回文串,次数+1;然后将A...原创 2018-04-09 21:55:57 · 421 阅读 · 1 评论 -
数字三角形
在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或 右下走。只需要求出这个最大和即可,不必给出具体路径。 三角形的行数大于1小于等于100,数字为 0 - 99输入格式:5 //表示三角形的行数 接下来输入三角形73 88 1 02 7 4 44 5 2 6...原创 2018-03-06 10:45:14 · 301 阅读 · 0 评论 -
八皇后问题
八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 解题思路: 棋盘一共八行八列,按照列的原则放置这八个皇后,从第一列选择某一个位置放置第一个皇后,然后从第二列选择某一个位置放置第二个皇后,……依此放置下去。要满足的条件原创 2018-03-05 22:03:25 · 292 阅读 · 0 评论 -
多重背包问题
问题描述: 有N件物品和一个容量为M的背包。第i件物品的费用是w[i],价值是v[i],数量是c[i]。求解将哪些物品装入背包可使价值总和最大。输入: 2 8 2 100 4 4 100 2 输出: 400 多重背包问题的特点是:每个物品都有了一定的数量其实解题的思路还是完全一样的...原创 2018-03-09 19:55:46 · 893 阅读 · 0 评论 -
完全背包问题
问题描述: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 完全背包问题的特点是:每个物品可以放入的个数是无限的。这不同于01背包问题的每个物品只有一个的特点原理和01背包问题差不多,所以解题的步骤也差不多。首先,定义状态...原创 2018-03-09 15:52:24 · 1255 阅读 · 0 评论 -
01背包问题的其他算法
上一篇博文讲的是根据动态规划来解决01背包问题,下面使用其他的几种算法来继续解决01背包问题方法一:遍历法 解题思路:将所有组合的情况遍历一遍,为了方便,将每种组合对应一个二进制数,例如:某个背包问题中有abcde五种物品,那么00001代表只放入了a,10001代表放入了a物品和e物品。则一共有2^5=32种情况,求出每种情况下的背包总价值,记录下背包总价值最大的情况,即为最后结...原创 2018-03-09 11:40:21 · 628 阅读 · 0 评论 -
01背包问题
问题描述: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 这是最基础的背包问题,01背包问题特点是:每种物品仅有一件,可以选择放或不放。 关于01背包的问题描述和解题思路,这里推荐一篇讲解的非常详细的博文:http://www.hawstein.com/posts/dp-knapsack.html原创 2018-03-08 10:40:51 · 285 阅读 · 0 评论 -
全排列之JAVA实现
全排列的基本思想是: 把待全排列记录分为两个部分: (1) 第一个记录 (2) 剩下的所有元素 所有记录的全排列就是所有可能出现在第一个位置的记录与剩下所有元素的全排列。 以[1,2,3]为例, 1,2,3的全排列可以看作是 &nbsp;&nbsp;&nbsp;1,[2,3的全排列] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb原创 2018-06-02 15:16:18 · 27241 阅读 · 17 评论