09 2017 档案

摘要:一、题目 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 二、解答思路 如果第一步选择竖方向填充,则剩下的填充规模缩小为n-1; 如果第一步选择横方向填充,则剩下的填充规模缩小为n-2,因为第一排确定后,第二排也就确定 阅读全文
posted @ 2017-09-30 23:06 AI菌 阅读(175) 评论(0) 推荐(0) 编辑
摘要:一、题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 二、思路 1、关于本题,前提是n个台阶会有一次n阶的跳法。分析如下: f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2阶一次跳2阶的次数。 阅读全文
posted @ 2017-09-30 22:01 AI菌 阅读(136) 评论(0) 推荐(0) 编辑
摘要:一、题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 二、思路 a.如果两种跳法,1阶或者2阶,那么假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1); b.假定第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2) c.由a\ 阅读全文
posted @ 2017-09-30 21:43 AI菌 阅读(183) 评论(0) 推荐(0) 编辑
摘要:一、题目 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39。 二、思路 序号: 0 1 2 3 4 5 6 7 8 9 10 斐波那契数列 : 0 1 1 2 3 5 8 13 21 34 55 斐波那契数列 除了前两个数0和1外,后面的元素为前面两个元素之和 阅读全文
posted @ 2017-09-30 21:31 AI菌 阅读(167) 评论(0) 推荐(0) 编辑
摘要:一、题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 二、解题思 阅读全文
posted @ 2017-09-30 20:33 AI菌 阅读(436) 评论(0) 推荐(0) 编辑
摘要:一、题目 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 二、思路 1、Push操作:将数据直接压入stack1即可 2、Pop操作:将stack1中的数据全部弹出压入到stack2中,然后将stack1中的数据全部弹出即可 注意:要将stack1中的数据全部压 阅读全文
posted @ 2017-09-30 16:59 AI菌 阅读(216) 评论(0) 推荐(0) 编辑
摘要:1:多线程(理解) (1)如果一个应用程序有多条执行路径,则被称为多线程程序。 进程:正在执行的程序。 线程:程序的执行路径,执行单元。 单线程:如果一个应用程序只有一条执行路径,则被称为单线程程序。 多线程:如果一个应用程序有多条执行路径,则被称为多线程程序。 举例:迅雷下载,360的管理界面。 阅读全文
posted @ 2017-09-30 14:45 AI菌 阅读(636) 评论(0) 推荐(1) 编辑
摘要:一、题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 二、解题思路: 如果理解了递归的访问,那么建树的过 阅读全文
posted @ 2017-09-29 23:39 AI菌 阅读(227) 评论(0) 推荐(0) 编辑
摘要:一、题目: 输入一个链表,从尾到头打印链表每个节点的值。 二、解题方法: 方法一:采用递归的方式实现 方法二:借助堆栈的“后进先出”实现 import java.util.ArrayList; import java.util.Stack; /** * 输入一个链表,从尾到头打印链表每个节点的值 * 阅读全文
posted @ 2017-09-29 09:37 AI菌 阅读(370) 评论(0) 推荐(0) 编辑
摘要:1:Math&大数据类四则运算 X abs(X x) double random() 产生随机数 double ceil(double a) 向上取整 double floor(double a) 向下取整 X max/min(X x,X y) double pow(double a, double 阅读全文
posted @ 2017-09-28 20:53 AI菌 阅读(306) 评论(0) 推荐(0) 编辑
摘要:1:数组的高级操作(预习) (1)数组:存储同一种数据类型的多个元素的容器。 (2)特点:每个元素都有从0开始的编号,方便我们获取。专业名称:索引。 (3)数组操作: A:遍历 public static void printArray(int[] arr) { for(int x=0; x<arr 阅读全文
posted @ 2017-09-22 16:43 AI菌 阅读(528) 评论(0) 推荐(0) 编辑
摘要:一、什么是堆 如果一个完全二叉树的每个节点,都不大于它的子节点,就可以称之为堆。所谓完全二叉树,就是除了叶子节点以外,所有的其他节点,都有完整的左字树和右子树,除了最后一层的非叶子节点以外。 二、堆排序算法的大体脉络 1、对无序的数据先建一个堆, 2、输出堆顶元素, 3、然后以最后一个元素代替堆顶元 阅读全文
posted @ 2017-09-19 16:35 AI菌 阅读(586) 评论(0) 推荐(0) 编辑
摘要:一、以下是我要解析的一个二叉树的模型形状。本文实现了以下方式的遍历: 1、用递归的方法实现了前序、中序、后序的遍历; 2、利用队列的方法实现层次遍历; 3、用堆栈的方法实现前序、中序、后序的遍历。 。 二、遍历 1、首先创建节点类 public class Node { private int da 阅读全文
posted @ 2017-09-19 10:47 AI菌 阅读(1980) 评论(0) 推荐(0) 编辑
摘要:1、什么是堆(heap) 首先,我们来看看什么是堆(heap)。堆满足以下性质: (1)堆中某个节点的值总是不大于或不小于其父节点的值; (2)堆总是一棵完全二叉树(Complete Binary Tree)。 完全二叉树是由满二叉树(Full Binary Tree)而引出来的。除最后一层无任何子 阅读全文
posted @ 2017-09-19 02:24 AI菌 阅读(421) 评论(0) 推荐(0) 编辑
摘要:一、题目 编写程序求一个整数的平方根,精确到小数点后三位 二、解法 1) 采用 牛顿迭代法。 2)牛顿迭代法简介 假设方程 在 附近有一个根,那么用以下迭代式子: 依次计算、、、……,那么序列将无限逼近方程的根。 牛顿迭代法的原理很简单,其实是根据f(x)在x0附近的值和斜率,估计f(x)和x轴的交 阅读全文
posted @ 2017-09-18 18:49 AI菌 阅读(5627) 评论(0) 推荐(0) 编辑
摘要:一、题目 袋中装有m枚正品硬币、n枚次品硬币(次品硬币两面均印有国徽)。从袋中任取一枚硬币,将它投掷r次,已知每次均出现国徽,问这枚硬币是正品硬币的概率是多少? 二、解法 此题考察贝叶斯公式。 贝叶斯公式是建立在条件概率的基础上寻找事件发生的原因(即大事件A已经发生的条件下,分割中的基本事件Bi的概 阅读全文
posted @ 2017-09-18 18:01 AI菌 阅读(5882) 评论(0) 推荐(0) 编辑
摘要:1、条件概率公式 设A,B是两个事件,且P(B)>0,则在事件B发生的条件下,事件A发生的条件概率(conditional probability)为: P(A|B)=P(AB)/P(B) 设A,B是两个事件,且P(A)>0,则在事件A发生的条件下,事件B发生的条件概率(conditional pr 阅读全文
posted @ 2017-09-18 17:29 AI菌 阅读(2044) 评论(0) 推荐(0) 编辑
摘要:一、排列与组合的区别 排列需要考虑顺序,组合不需要考虑顺序。 二、排列(Arrangement) 1、定义: 排列数公式 就是从n个不同元素中,任取m(m≤n)个元素(被取出的元素各不相同),按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列。 2、计算公式: 三、组合(Combin 阅读全文
posted @ 2017-09-18 11:23 AI菌 阅读(930) 评论(0) 推荐(0) 编辑
摘要:一、方法一 (1)运用hashMap的方法 /* 解法2: (1)思路:这个可以可以使用一个Map,Map对应的键值key就是数组中的元素,value就是这个元素出现的次数。这样我 通过一次遍历数组中的元素,如果元素出现在map中,则将其对应的value加1,否则将元素添加到map中,这样遍历一遍数 阅读全文
posted @ 2017-09-18 03:53 AI菌 阅读(3323) 评论(0) 推荐(0) 编辑
摘要:一、题目: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。例如数组为{1,3,5,7,1,3,5,9},找出7和9。 二、解答: 1、运用异或运算符的解法 我们先考虑上述问题的简单版本: 一个数组里面只有一个数字出现一次,其他都出现两次,请找出这个数字。 阅读全文
posted @ 2017-09-18 02:33 AI菌 阅读(10538) 评论(0) 推荐(2) 编辑
摘要:一、题目: 这是一道考的烂的不能再烂的题目,但是依然有很多公司乐于将这样的题目作为笔试或面试题,足见其经典。 问题是这样的:一个整数数组中的元素有正有负,在该数组中找出一个连续子数组,要求该连续子数组中各元素的和最大,这个连续子数组便被称作最大连续子数组。比如数组{2,4,-7,5,2,-1,2,- 阅读全文
posted @ 2017-09-17 22:58 AI菌 阅读(720) 评论(0) 推荐(0) 编辑
摘要:一、二分法查找的定义 依次将所查找数据与中心数据对比,根据大小调整数据边界二、二分查找的条件 数组必须排序三、二分查找的原理 四、二分法查找的代码 /* * 从数组当中找到4所在的索引: * {2,4,6,7,43,57,90,101} */ public class Demo3 { public 阅读全文
posted @ 2017-09-17 15:21 AI菌 阅读(415) 评论(0) 推荐(0) 编辑
摘要:一、冒泡排序 1、原理:相邻元素两两比较,大的往后放。第一次完毕,最大值在最大索引处。 即使用相邻的两个元素一次比价,依次将最大的数放到最后。 2、代码: public static void bubbleSort(int[] arr) { for(int x=0; x<arr.length-1; 阅读全文
posted @ 2017-09-17 13:19 AI菌 阅读(297) 评论(0) 推荐(0) 编辑
摘要:1:Scanner的概述(理解) 1)Scanner是JDK5以后出现的方便我们从键盘接受数据的类。 2)Scanner的构造格式: Scanner sc = new Scanner(System.in); System.in 是System类下面有一个静态的成员变量in。它的类型是InputStr 阅读全文
posted @ 2017-09-16 19:23 AI菌 阅读(575) 评论(0) 推荐(0) 编辑
摘要:一、Java开发工具的使用 A:notepad windows自带的记事本。 B:高级记事本 Editplus Notepad++ UE sublime2 C:集成开发工具(IDE) 开发和运行。 Eclipse MyEclipse = Eclipse + 插件 Netbeans(AWT 图形) 2 阅读全文
posted @ 2017-09-15 20:26 AI菌 阅读(349) 评论(0) 推荐(0) 编辑
摘要:谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,下面不妨跟我一块看下它们究竟有什么异同。 1、解决问题的层面不一样 首先,Hadoop和Apache Spark两者都是大数据框架,但是各自存在的目的不 阅读全文
posted @ 2017-09-12 00:31 AI菌 阅读(1503) 评论(0) 推荐(0) 编辑
摘要:1:内部类(理解) (1)把类定义在一个类的内部。 (2)特点: A:内部类可以直接使用外部类的成员,包括私有。 B:外部类要使用内部类成员,必须创建对象使用。 例子: public class InnerClassTest { public static void main(String[] ar 阅读全文
posted @ 2017-09-11 12:59 AI菌 阅读(225) 评论(0) 推荐(0) 编辑
摘要:技巧一://统计字符串s1的频率 String s1 = in.nextLine(); //统计字符串s1的频率 for (char c1 : s1.toCharArray()) { if (hashMap1.containsKey(c1)) { hashMap1.put(c1, hashMap1. 阅读全文
posted @ 2017-09-08 23:54 AI菌 阅读(447) 评论(0) 推荐(0) 编辑
摘要:题目一:藏宝图 牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t, 根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序列。注意,子序列不要求在原字符串中是连续的,例如串 abc, 它的子序列就有 {空串, a, b, c, 阅读全文
posted @ 2017-09-08 23:49 AI菌 阅读(1329) 评论(0) 推荐(0) 编辑
摘要:Set集合遍历方法: 对 set 的遍历 1.迭代遍历: Set<String> set = new HashSet<String>(); Iterator<String> it = set.iterator(); while (it.hasNext()) { String str = it.nex 阅读全文
posted @ 2017-09-08 22:24 AI菌 阅读(1222) 评论(0) 推荐(0) 编辑
摘要:1:多态(掌握) (1)多态概念:一种事物的多种形态 (2)体现:父类的引用指向其子类的实例对象;接口的引用指向其实现类的实例对象 (3)特点: 成员方法:编译看左边,运行看右边 运行:子类重写的方法运行 编译:父类的引用类型必须有该方法 成员变量:编译看左边,运行看左边 运行:访问的为父类的属性 阅读全文
posted @ 2017-09-07 00:02 AI菌 阅读(272) 评论(0) 推荐(0) 编辑
摘要:1:Math类的随机数(掌握) 类名调用静态方法。 包:java.lang 类:Math 方法:public static double random(): Java.lang包下的类是不用导包就可以直接使用的。 产生1-100之间的随机数: int number = (int)(Math.rand 阅读全文
posted @ 2017-09-04 21:29 AI菌 阅读(545) 评论(0) 推荐(0) 编辑
摘要:1:成员变量和局部变量的区别(理解) (1)定义位置区别: 成员变量:定义在类中,方法外。 局部变量:定义在方法中,或者方法声明上。 (2)初始化值的区别: 成员变量:都有默认初始化值。 局部变量:没有默认初始化值。要想使用,必须先赋值。 (3)存储位置区别: 成员变量:存储在堆中。 局部变量:存储 阅读全文
posted @ 2017-09-03 18:54 AI菌 阅读(328) 评论(0) 推荐(0) 编辑
摘要:1:二维数组(理解): (1)格式: 1:int[][] arr = new int[3][2]; 2:int[][] arr = new int[3][]; 3:int[][] arr = {{1,2,3},{4,5},{6,7,8,9}}; 内存图: 格式1的内存图: 格式2的内存图: 数组穿参 阅读全文
posted @ 2017-09-02 22:43 AI菌 阅读(1413) 评论(0) 推荐(0) 编辑
摘要:最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。 关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比 阅读全文
posted @ 2017-09-01 23:36 AI菌 阅读(280) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示