![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题目
菜鸟--小新
知识不是有用才学,而是学了才有用。
展开
-
算法思想之牛逼的DP
昨晚无意间浏览到一篇为何学习使用DP的文章,给了我很大的震惊,让我深深的意识到DP的重要性以及数学建模能力、实践代码解决能力、以及面向对象解决算法问题昨晚熬夜浏览了不少关于DP的文章和详解,感觉差不多多少有点顿悟了, 然后我自己总结下如下:1.关于使用DP可以解决哪些问题?也就是说哪些问题可以采用DP?无非2点:最优子结构;重复性子问题;因为DP思想本质是:通过你强大的数学递推能力,推原创 2017-11-03 09:41:59 · 944 阅读 · 0 评论 -
N行N列表格的路径问题
一道可以用DP做的简单的题目/** * Author:林万新 lwx * Date: 2017/11/10 * Time: 23:16 * 问题: * 给你一个n,表示n行n列的表格,然后输出从表格的左上角走到右下角一共有多少条路径? * 只可以向下或者向右移动 * * 例子:n =1 ,f(n) =1; * n = 2, f(n) = 2; * n = 3,f(n) = 6;原创 2017-11-10 23:40:10 · 380 阅读 · 0 评论 -
洗扑克牌问题
问题与解法描述: /*问题:洗扑克牌 * 洗扑克牌原理=乱数排序,都是将一组数字(1-N)打乱重新排列,要求按照花色排列。 * 解法: * 1-N按顺序排列好,依次顺序访问,并产生一个1-N随机数,将走访到的与随机数进行交换就可以! * 因为13个数,4个花色,对13取商判断花色,取余判断数字! */ 可运行代码: public class ShuffleCard {p原创 2017-10-16 17:13:59 · 570 阅读 · 0 评论 -
求解N以内的质数问题
问题与解法: /* * 求N以内的质数:除1和自身外都没有被整除的就是质数,1不是! * 解法: * 因为A*B=N,如果A》N的开根号,就可以先检查到B被N整出,可知,只需要N开根号判断就可以,减少判断量;注意用i*i<=N来检查; * 在利用筛子存放1~N,先晒去2的倍数,再筛去3的倍数….如此进行下去剩下的就是质数了! */ 可执行代码: public class P原创 2017-10-16 16:43:33 · 569 阅读 · 0 评论 -
赌博游戏设计逻辑顺序题目
public class Dubo {//2个骰子之和public int rollDice(){ int roll = (int)(Math.random()*6)+(int)(Math.random()*6); if(roll <2){ roll = 2; } return roll;}//游戏规则public void dubo(){原创 2017-10-16 16:12:44 · 2460 阅读 · 0 评论 -
荷兰3色国旗问题
/* * 荷兰3色国旗问题: * 由红/白/蓝组成的序列,用O(n)解决,按照红/白/蓝顺序排列; * 解法: * 建立3个指针,j:当前扫描的元素,代表他所维护的白色区域 * i:他之前的元素全是红色;代表他所维护的红色区域; * k:他之后的元素全是蓝色;代表他所维护的蓝色区域; * 顺序扫描此线性表,用j与i、k交换; */ public class原创 2017-10-16 12:20:26 · 385 阅读 · 0 评论 -
经典汉诺塔递归问题
/* * 经典的汉诺塔问题 : * 解法:A\B\C 3个柱子; * 假如有1个盘子,直接从A->C; * 假如有2个盘子,先把前面的1个A->B,然后最后一个A->C,最后把剩下的B->C; * 假如N>2时,就递推出和2一样的步骤; */ public class Hanoi {public void move(int n,char A,char B,cha原创 2017-10-16 11:51:02 · 282 阅读 · 0 评论 -
背包问题
问题与描述;/** * Author:林万新 lwx * Date: 2017/10/27 * Time: 17:41 * 问题描述; * 1个背包最多负重8KG,希望放入价值最大化 * 编号 水果 重量 价值 * 0 李子 4KG 4500 * 1 苹果 5KG 5700 * 2 橘子原创 2017-10-27 18:08:29 · 197 阅读 · 0 评论 -
面试手写代码的题目
提取出来的场景模拟:对于1–16,调用一次方法,就让他产生4个数字,调用4次完毕,产生4组不同的数字!注意:nextInt(101)是产生0-100之间的任意整数,不包括101. * 完整代码:public class World { static int a[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; public static void ra原创 2017-10-27 11:13:56 · 1658 阅读 · 0 评论 -
一道有意思的二进制用法的题目
问题阐述: 有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠. 理解并且解题目: 1.先理解:你可以用1000只老鼠去分别尝试每只桶,最后看看哪个死了,对应的就是那个桶; 上面的是1只老鼠对应1个桶去喝酒,我们为什么不可以用多只老鼠去尝试多只原创 2017-10-27 10:58:33 · 1700 阅读 · 0 评论 -
可怕的N!问题
/*问题描述: * 计算n!(n<100) * 当n=13时,就是62亿+了,超出int;所以n很大时需要用字符串保存输出 * 解法:仿照两个大数相乘的具体过程,如98*99 , * 具体乘法过程是用99先去乘以8,得到结果为792,进位79,因此个位为2, * 99乘以9得到891,891+79 = 970,进位97,因此最后结果9702. */ 可执行代码: publ原创 2017-10-17 22:03:37 · 310 阅读 · 0 评论 -
字符串转化为整数值
思路分析首先判断字符串是否为空,返回0考虑前面的是否是空格,使用trim()去掉,然后判断长度是否为0,是的话,返回0判断第一个字符是不是+和-,设置变量sign记录循环取得字符串的数字,考虑字符串中有非数字,遇到就退出,保留前面的数字考虑溢出的情况,溢出返回Integer的最大值或最小值public class Solution { public static int myAu原创 2017-12-23 09:59:02 · 510 阅读 · 0 评论