- 博客(30)
- 收藏
- 关注
转载 数据分析的13种思维
原文链接:http://www.jianshu.com/p/5a8f01fe7f2a“数据分析的目的在于驱动决策”,为了不让这句话成为空话,请先装备以下13种思想武器,相信将来你一定能用上!1、信度与效度思维这部分也许是全文最难理解的部分,但我觉得也最为重要。没有这个思维,决策者很有可能在数据中迷失。信度与效度的概念最早来源于调查分析,但现在我觉得可以引...
2019-03-15 16:50:18
1272
1
原创 【暴力枚举】大集合了解一下?
一、纸牌三角形问题A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。 下图就是一种排法。 A 9 6 4 8 3 7 5 2这样的排法可能会有很多。如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?public static void main(String[] args) { int...
2018-03-29 21:35:03
907
2
原创 蓝桥杯竞赛题—— 历届试题【带分数】
问题描述100 可以表示为带分数的形式:100 = 3 + 69258 / 714。还可以表示为:100 = 82 + 3546 / 197。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。输入格式从标准输入读入一个正整数N (N<1000*1000)输出格式程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。注意:...
2018-03-27 21:39:22
569
原创 蓝桥杯竞赛题—— 历届试题【翻硬币】
问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作,那...
2018-03-27 21:37:11
323
原创 蓝桥杯竞赛题—— 历届试题【分糖果】
分糖果 有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边的孩子。 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。 反复进行这个游戏,直到所有小朋友的糖果数都相同为止。 你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。【格式要求】 程序首先读入一个整...
2018-03-27 21:33:23
939
原创 蓝桥杯竞赛题——第七届第3题【凑算式】
凑算式 B DEFA + --- + ------- = 10 C GHI (如果显示有问题,可以参见【图1.jpg】) 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说...
2018-03-21 21:25:59
363
1
原创 全排列算法
1.全排列的定义和公式:从n个数中选取m(m<=n)个数按照一定的顺序进行排成一个列,叫作从n个元素中取m个元素的一个排列。由排列的定义,显然不同的顺序是一个不同的排列。从n个元素中取m个元素的所有排列的个数,称为排列数。从n个元素取出n个元素的一个排列,称为一个全排列。全排列的排列数公式为n!,通过乘法原理可以得到。2.时间复杂度:n个数(字符、对象)的全排列一共有n!种,所以全排列算法至...
2018-03-21 20:02:53
8447
原创 Java学习日志——ArrayUtils 用法
1.toString:将一个数组转换成String,用于打印数组2.isEquals:判断两个数组是否相等,采用EqualsBuilder进行判断toMap将一个数组转换成Map,如果数组里是Entry则其Key与Value就是新Map的Key和Value,如果是Object[]则Object[0]为KeyObject[1]为Value3.clone:拷贝数组4.subarray:截取子数组5.i...
2018-03-21 19:47:16
1348
原创 字母(串)大小写转换——Java多方式实现
例:从键盘输入一个大写字母,要求改用小写字母输出。输入 A输出 a方法一:通过类型转换实现import java.util.Scanner;public class Zhuanhuan { public static void main(String[] args) { Scanner in=new Scanner(System.in); String a=in.nex...
2018-03-13 20:20:55
858
原创 五大常用算法——分支限界算法详解及经典例题
一、对比回溯法回溯法的求解目标是找出解空间中满足约束条件的所有解,想必之下,分支限界法的求解目标则是找出满足约束条件的一个解,或是满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。另外还有一个非常大的不同点就是,回溯法以深度优先的方式搜索解空间,而分支界限法则以广度优先的方式或以最小耗费优先的方式搜索解空间。二、分支限界法的搜索策略在当前节点(扩展节点)处,先生成其...
2018-03-13 19:32:55
20854
原创 SPFA 算法(Shortest Path Faster Algorithm)
一、算法背景求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm。 SPFA算法是西南交通大学段凡丁于1994年发表的。有人称spfa算法是最短路的万能算法。二、适用范围: 给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 我们约定有向加权图G不存在负权回路...
2018-03-12 21:36:03
1668
原创 蓝桥杯竞赛题——算法训练【最短路】
问题描述给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。输入格式第一行两个整数n, m。接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。输出格式共n-1行,第i行表示1号点到i+1号点的最短路。样例输入3 31 2 -12 3 -13 1 2样例输出-1-2数据规模与约定对于10%的数据,n ...
2018-03-12 20:15:51
886
原创 五大常用算法——分治算法详解及经典例题
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间都与其规模有...
2018-03-12 16:36:15
34431
5
原创 五大常用算法——回溯算法详解及经典例题
回溯算法 1.回溯算法就是一种有组织的系统最优化搜索技术,可以看作蛮力法穷举搜索的改进。回溯法常常可以避免搜索所有可能的解,所以它适用于求解组织数量较大的问题。 2.首先我们先了解一下一个基本概念“解空间树”:问题的解空间一般使用解空间树的方式来组织,树的根节点位于第1层,表示搜索的初始状态,依次向下排列。 3.解空间树的动态搜索:在搜索至树中任一节点时,先判断该节点对应的部分是否是满足约束...
2018-03-11 20:28:12
49231
7
原创 【深度优先搜索算法】与【宽度优先搜索算法】
深度优先搜索算法 深度优先搜索算法(Depth-First-Search,简称DFS)是一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都...
2018-03-11 15:18:23
5289
原创 剪枝算法 整理
顾名思义,穷竭搜索会把所有可能的解都检查一遍,当解空间非常大时,复杂度也会相应的变大。比如n个元素进行排列时状态数总共有n!个,复杂度也就成了o(n!)。这样的话,即使n=15计算也很难较早终止。深度优先搜索时,有时早已很明确的知道从当前状态无论如何转移都不会存在解。这种情况下,不再继续搜索而是直接跳过,这一方法叫做剪枝。一:剪枝策略的寻找的方法1)微观方法:从问题本身出发,发现剪枝条件。...
2018-03-11 14:58:29
8712
1
原创 蓝桥杯竞赛题——算法训练【区间k大数查询】
问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。输出格式总共输出m行,每行一个数,表示询问的答案。样例输入51 2 3 4 521 ...
2018-03-09 20:28:18
332
原创 蓝桥杯竞赛题——算法训练【最大最小公倍数】贪心
问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式输入一个正整数N。输出格式输出一个整数,表示你找到的最小公倍数。样例输入9样例输出504数据规模与约定1 <= N <= 106。算法:找出三个互质的最大数,直接相乘就得到了最大的最小公倍数。虽然是求最小公倍数,但是并没有用到欧几里得 判断两个数是否互质的方法(几种常见的): (一些数的规律和带...
2018-03-09 20:23:31
407
原创 用动态规划解决背包问题
求解背包问题: 给定 n 个背包,其重量分别为 w1,w2,……,wn, 价值分别为 v1,v2,……,vn 要放入总承重为 totalWeight 的箱子中, 求可放入箱子的背包价值总和的最大值。 NOTE:使用动态规划法求解 背包问题 设 前 n 个背包,总承重为 j 的最优值为 v[n,j...
2018-02-28 00:01:55
840
原创 五大常用算法——动态规划算法详解及经典例题
一、基本概念 动态规划是运筹学中用于求解决策过程中的最优化数学方法。当然,我们在这里关注的是作为一种算法设计技术,作为一种使用多阶段决策过程最优的通用方法。 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。 假设问题是由交叠的子问题所构成,我们就能够用动态规划技术来解决...
2018-02-27 23:12:16
71911
12
原创 Java学习日志——super关键字
super关键字代表父类对象,主要有两个用途:◆调用父类的构造方法;◆访问父类的属性和方法。1.调用父类的构造方法 在Java中父类和子类属性的初始化过程是各自完成的,虽然构造方法不能够继承,但通过使用super关键字在子类构造方法中可以调用父类的构造方法,以便完成父类的初始化。 以Person类和Teacher类为例,演示在子类构造方法中可以调用父类的构造方法,以便完成父类的初始化...
2018-02-27 18:11:52
268
原创 五大常用算法——贪心算法详解及经典例子
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。基本思路:⒈ 建立数学模型来描述问题。⒉ 把求解的问题分成若干个子问题。⒊ 对每一子问题求解,得到子问题的局部最优解。⒋...
2018-02-08 15:07:22
155888
18
原创 Java学习日志——StringBuffer 和 StringBuilder 类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不
2018-02-06 23:26:52
199
原创 常用数组排序方法(Java实现)
[java] view plain copy1、数组的冒泡排序 [java] view plain copypublic void bubbleSort(int a[]) { int n = a.length; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1- ...
2018-02-05 16:29:35
290
原创 Java学习日志——重载(Overload)
重载(Overload)重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。重载规则被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);被重载的方法可以改变返回类型;被重载的方法可以改变访问修饰
2018-02-04 17:25:52
192
原创 Java学习日志——重写(Override)
重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时
2018-02-04 17:24:52
429
原创 蓝桥杯竞赛题——基础练习
基础练习 闰年判断 问题描述给定一个年份,判断这一年是不是闰年。当以下情况之一满足时,这一年是闰年:1. 年份是4的倍数而不是100的倍数;2. 年份是400的倍数。其他的年份都不是闰年。输入格式输入包含一个整数y,表示当前的年份。输出格式输出一行,如果给定的年份是闰年,则输出yes,否则输出no。说明:当试...
2018-02-04 17:21:19
420
原创 蓝桥杯竞赛题——入门训练
入门训练 A+B问题 问题描述输入A、B,输出A+B。说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标。输入格式输入的第一行包括两个整数,由空格分隔,分别表示A、B。说明:“输入格式”是描述在测试你的程序时,所给的输入一定满足的格式。做题时你应该假设所给的输入是一定满足输入格式的要求的,所以你不需要对输入的格式进行检查。多余的格式检查可能会适得其反,使用你的程序错误。在测试的时候,...
2018-02-02 20:09:54
445
原创 Java学习日志——继承
继承的概念继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。生活中的继承:兔子和羊属于食草动物类,狮子和豹属于食肉动物类。食草动物和食肉动物又是属于动物类。所以继承需要符合的关系是:is-a,父类更通用,子类更具体。虽然食草动物和食肉动物都是属于动物,但是两者的属性
2018-02-01 20:12:29
269
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人