【数据结构与算法】
文章平均质量分 76
粘衣_乱飞
这个作者很懒,什么都没留下…
展开
-
Java关于链表的增加、删除、获取长度、打印数值的实现
Java关于链表的增加、删除、获取长度、打印数值的实现package com.shb.java;public class Demo8 { public Node headNode = null; /** * @param args * @date 2016-9-28 * @author shaobn */ public ...原创 2018-07-17 21:31:51 · 9167 阅读 · 0 评论 -
用 list 解决约瑟夫问题。
约瑟夫问题是:有 n 只猴子,按顺时针方向围成一圈选大王(编号为 1~n),从第 1 号开始报数,一直数到 m,数到 m 的猴子退到圈外,剩下的猴子再接着从 1 开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王。编程求输入 n、m 后,输出最后猴王的编号。输入数据:每行是用空格分开的两个整数,第一个是 n,第二个是 m(0<m, n<=1 000 000)。最后一行是:...原创 2019-09-23 11:40:15 · 940 阅读 · 0 评论 -
DFS(深度优先搜索)--猴子爬山--leetcode784字母大小写全排列--全排列---N级台阶
猴子爬山一天一只顽猴想去从山脚怕到山顶,途中经过一个有个N个台阶的阶梯,但是这猴子有一个习惯: 每一次只能跳1步或跳3步,试问猴子通过通过这个阶梯有多少种不同的跳跃方式?解答要求时间限制:1000ms, 内存限制:64MB输入输入只有一个整数N(0<N<=50)此阶梯有多少个阶梯输出输出有多少种跳跃方式(解决方案数)样例输入样例 1350输...原创 2019-09-16 22:12:30 · 4500 阅读 · 0 评论 -
背包九讲
0-1背包问题有n个重量和价值分别为wi,vi的物品。从这些物品中挑选出总重量不超过WW的物品, 求所有挑选方案中价值总和的最大值。样例:n=4 (w,v)=(2,3),(1,2),(3,4),(2,2) W=5n个物品,每种物品只有两种选择,放进背包,或者不放进背包。n个物品对应的,最大的所有可能的总数为2n2n种不同的放法。最朴素的,我们可以枚举所有可能的放法,找...原创 2019-09-05 10:29:59 · 320 阅读 · 0 评论 -
字符串中求最长数字串(两种题型)、包括标点的数字串、找最长的字符串、求最长连续子序列之和
题目描述一:读入一个字符串str,输出字符串str中的连续最长的数字串输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255。输出描述:在一行内输出str中里连续最长的数字串。输入abcd12345ed125ss123456789输出123456789思路分析: ...原创 2019-08-31 10:47:46 · 2390 阅读 · 0 评论 -
Java常见类型转换
//Int型数字转换成String int num1=123456; //方法1 String str1=num1+""; System.out.println(str1); //方法2 String str2=String.valueOf(num1);...原创 2018-09-05 21:12:34 · 524 阅读 · 0 评论 -
五大经典算法总结
五大经典算法分为1、分治法:把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。2、动态规划法:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。3、贪心算法:在对问题求解时,总...原创 2018-08-21 11:34:13 · 12973 阅读 · 0 评论 -
八大排序算法总结(通俗易懂全面Java版)
排序算法总结排序算法 平均时间复杂度 冒泡排序 O(n2) 选择排序 O(n2) 插入排序 O(n2) 希尔排序 O(n1.5) 快速排序 O(N*logN) 归并排序 O(N*logN) 堆排序 O(N*logN) 基数排序 O(d(n+r)) 一. 冒泡排序(BubbleSort) 基本思想:两...原创 2018-08-16 10:11:23 · 1986 阅读 · 1 评论 -
贪心算法
贪心算法简介: 贪心算法是指:在每一步求解的步骤中,它要求“贪婪”的选择最佳操作,并希望通过一系列的最优选择,能够产生一个问题的(全局的)最优解。 贪心算法每一步必须满足一下条件: 1、可行的:即它必须满足问题的约束。 2、局部最优:他是当前步骤中所有可行选择中最佳的局部选择。 3、不可取消:即选择一旦做出,在算法的后面步骤就不可改变了。贪心算法案例:1...原创 2018-08-11 21:27:19 · 201 阅读 · 0 评论 -
动态规划之背包问题以及优化为一维数组和完全背包问题(最易理解的讲解)
有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?i(物品编号) 1 2 3 4 w(体积) 2 3 4 5 v(价值) 3 4 5 6 背包问题的解决过程在解决问题之前,为描述方便,首先定义一些变量:Vi表示第 i 个物品的价值,Wi表示第 i ...原创 2018-08-10 14:34:49 · 1171 阅读 · 0 评论 -
如何实现栈(以链表的形式)
package list;import java.util.Arrays;public class MyStack { private Object[] stack; private int size; //栈大小 public MyStack(){ stack = new Object[10]; } //判断栈是否为空public boolean isEmpty(){...原创 2018-07-25 14:45:54 · 382 阅读 · 0 评论 -
解密数列【利用队列求解】
题目描述苗苗截获了希希发出去的一串数字,不过希希告诉苗苗数列是加密过的。苗苗通过某种手段得知了解密方法:首先将第一个数字删除,紧接着将第二个数字放到这串数字的末尾,再将第三个数字删除并将第四个数字放到末尾,如此继续,直到剩下最后一个数,将最后一个数也删除,然后,按照刚才删除的顺序,把这些删除的数连在一起就是加密之前的原文了。于是破解了希希的数列。解答要求时间限制:1000ms, 内存限制:...原创 2019-09-10 21:02:15 · 3177 阅读 · 0 评论