
===== 编程语言 =====
文章平均质量分 77
striner
这个作者很懒,什么都没留下…
展开
-
经典算法之全排列(详集)
我总结了全排列的各种题解,若有不全之处还请各位大大们慷慨指出.1. 全排列之取球游戏问题描述: m球中取n个球,共有多少种取法解题思路: 用递归思想解题.乍眼一看貌似递归无下手之处,其实每一个球只有两种情况:要么取, 要么不取. 若用m表示球的个数,n表示需要取的球的总数,那么当前球取则return fun(m - 1, n - 1) ; 不取则原创 2018-03-25 21:34:05 · 805 阅读 · 1 评论 -
有关Spring的知识点总结
Springspring容器:spring框架中的一个核心模块,用于管理对象.通过反射创建对象.创建对象的方式:方式一 使用无参构造器创建对象(常用)step1:给类添加无参构造器(或缺省构造器)step2:配置文件中配置bean. id:bean的名称,唯一 class:类的全限定名 (反射机制,需要找到类的全限定名)step3:调用容器的getBean("id", class名...原创 2018-05-24 20:06:05 · 399 阅读 · 0 评论 -
关于反射的知识点总结
反射1.是JAVA API,是java提供的现成的类2.是java提供的动态执行机制,可以动态加载类,动态创建对象,动态访问属性,动态调用方法.静态与动态静态:事先约定的规则,执行期间按照固定的规则执行.java中的静态执行:编译时已经就确定执行规则(执行次序),在运行期间按照编译结果顺序执行.动态:事先没有约定,在执行期间动态确定执行规则.java中的动态执行:运行期间才能确定加载哪些类,创建哪...原创 2018-05-24 20:02:57 · 1734 阅读 · 1 评论 -
经典算法之分治法 大数相乘
题目描述:用串的形式表示大数的乘法。即求类似: "23234845847839461464158174814792" * "6457847285617487843234535"要求结果返回一个串。解题思路:采用分治法解题.具体方式已在代码中注释.代码实现:import java.util.Scanner;public class Main {原创 2018-04-05 13:29:56 · 2898 阅读 · 0 评论 -
经典算法之二分查找 找出刚好比x稍微大点的那个数
题目描述:已知有序的序列,比如:2,3,3,5,9,9,9,12,12,13,15,22,22,22,22,25,25,23,91,95有整数x,比如: x=23要求找到一个刚好比x稍微大一点的元素位置当数组较大的时候,需要二分查找加快速度。思路分析:典型的二分查找问题,定义一个尾指针end和一个头指针begin不断二分递归,当end-begin==1时原创 2018-04-04 21:02:13 · 1790 阅读 · 0 评论 -
经典算法之并查集 合根植物
题目描述:w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗?输入格式:第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1接下来一行原创 2018-04-03 11:16:41 · 784 阅读 · 2 评论 -
经典算法之走迷宫
问题描述:...1111111111111111111111111111111.111111........1111111111.111111.111111..111.11111111.....111111.11111111111.1111111111.11111111.111111.................11111111.111111.11111111111.1原创 2018-04-03 11:02:41 · 5833 阅读 · 0 评论 -
经典算法之辗转相除法(欧几里得定理)
问题描述:两个数a,b,要求求得这两个数的最大公约数和最小公倍数.解题思路:辗转相除法(欧几里得定理)思想:一个数,能整除数a和数b,那么这个数一定可以整除(a-b),即gcd(a, b) = gcd(a, a%b);基于算法基本定理: 质因数分解的一致性代码实现:import java.util.Scanner;public class Main原创 2018-04-01 18:27:00 · 6597 阅读 · 0 评论 -
经典算法之博弈论 高僧斗法
问题描述:两高僧斗法.现有若干级台阶(表示N级浮屠).又有若干小和尚随机的站在某个台阶上.最高一级台阶必须站人,其他任意.两位参加游戏的法师分别指挥某个小和尚向上走任意多级的台阶,但会被站在高级台阶上的小和尚阻挡,不能越过.两个小和尚也不能站在同一台阶,也不能向低级台阶移动.两高僧轮流发出指令,最后所有小和尚必然都会挤在高段台阶上,再也不能向上移动.轮到哪个高僧指挥时无法移动,则游原创 2018-04-02 08:37:18 · 448 阅读 · 1 评论 -
经典算法之博弈论 填字母游戏
问题描述:有四种残局,星号'*'代表空格.两人博弈,轮流在空格处填补字母,一次只能填写一个,即'L'或者'O',最先拼出'LOL'字样的获胜.解题思路:每人每次只能填'L'字母或者'O'字母,而填充后局面如何就递归试探交给对方去判断,赢则return 1, 输则return -1, 平局则return 0.试探结束后再回溯用于试探下一个局面.代码实现:p原创 2018-04-01 19:15:50 · 1248 阅读 · 3 评论 -
经典算法之博弈论 取球博弈
问题描述:取球博弈.局面上有一堆球,二人博弈,每人一次只能取1,3,7或者8个球.要求输出局面有n个球时的胜负情况.解题思路:这里我提供两种题解,一种是纯递归求解,但纯递归CPU消耗过大,后面我还会提供动态规划+缓存的题解方法.实现方式一:*纯递归解题, 由于纯递归对CPU消耗过大,这里我以1到50个球的局面情况为例public class原创 2018-04-01 18:51:11 · 2475 阅读 · 1 评论 -
经典算法之分治法 求最大区间和
问题描述:数组中整数有正有负求一连续子段,使得和最大化例如:2,4,-7,5,2,-1,2,-4,3最大连续段:5,2,-1,2其最大和为8解题思路:制造递归条件,将数组分为两部分.将区间和分为三部分计算:第一部分:从begin开始计算[begin, index)第二部分:从end开始计算[index, end)第三部分:原创 2018-04-08 21:23:37 · 1612 阅读 · 0 评论 -
经典算法之尼姆堆问题
问题描述:有四堆硬币,数量分别为2, 5, 12, 14两玩家轮流取硬币,每人每次只能从某一堆上取任意数量的硬币,取到最后的玩家胜解题思路:这道题用尼姆堆解题 模2加(异或)解法当每一堆硬币数量异或值为0时,必胜 10 101 1100 1110 ------ 0101代码实现:public cl原创 2018-03-31 20:38:14 · 1002 阅读 · 0 评论 -
经典算法之天平称重问题(进制解法)
问题描述:已知所有砝码重量均为3的倍数,且所有重量的砝码有且只有一个要求输出重量1到n的所有物品的称重方式解题思路:用字符串拼接结果三进制的返回值为0 1 2返回值为0则表示该权重不取返回值为1表示加上该权重返回值为2表示该权重需要加上两遍,不符合题意. 故需将其转换为-1减掉该位权重,对商进行改变.如: 2 ÷ 3 - 2 ... 0 == -原创 2018-03-31 20:20:29 · 6202 阅读 · 0 评论 -
java集合框架的练习之斗地主洗牌发牌的模拟(升级版)
首先,奉上java集合框架的练习之斗地主洗牌发牌的模拟(初级版)的链接:http://blog.youkuaiyun.com/striner/article/details/78489306初级版只具有洗牌发牌的功能,而玩家拿到手的牌也是乱序排放,此次程序需在初级版的基础上另加扑克牌的排序功能,进行进一步的升级.注:虽说此次程序是对上一次程序的一个升级,不过不要怕,没看过初级版的人看这篇博客也是完全不会有压力...原创 2017-11-09 15:25:37 · 766 阅读 · 0 评论 -
Java集合类之HashMap原理小结
1. 认识HashMapHashMap是用来存储key-value键值对的数据结构。当我们创建HashMap的时候,如果不指定任何参数,它会为我们创建一个初始容量为16,负载因子为0.75的HashMap (load factor,记录数/数组长度)。当loadFactor达到0.75或指定值的时候,HashMap的总容量自动扩展一倍。它的底层采用Entry数组来保存所有的key-val...转载 2019-01-12 18:26:02 · 167 阅读 · 0 评论