自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 Notes of CFA Level1 READING 11: SAMPLING AND ESTIMATION

MODULE 11.1: CENTRAL LIMIT THEOREM AND STANDARD ERRORsampling error of the mean = sample mean − population mean =.sampling distribution 抽样分布分层抽样 Stratified samplingtime-series and cross-sect...

2019-08-26 08:18:29 355

原创 Notes of CFA Level1 READING 10: COMMON PROBABILITY DISTRIBUTIONS

MODULE 10.1: UNIFORM AND BINOMIAL DISTRIBUTIONSThe Binomial Distribution 二项分布Expected Value and Variance of a Binomial Random Variableexpected value of X = E(X) = npvariance of X = np(1 −...

2019-08-20 12:57:19 522

原创 剑指OFFER 面试题32(队列:先进先出):从上到下打印二叉树(JAVA)

题目1不分行从上到下打印二叉树。从上往下打印出二叉树的每个节点,同一层的节点从左到右的顺序打印。思路每次打印一个结点的时候,如果该节点有子节点,把该节点的子节点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的节点,重复前面打印操作,直到队列中所有的节点都被打印出来。代码1import java.util.ArrayList;public class PrintTr...

2019-08-19 20:20:59 140

原创 剑指OFFER 面试题31:栈的压入、弹出序列(JAVA)

题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。思路解决这个问题很直观的想法就是建立一个辅助栈,把输入的第一个序列中的数字依次压入该辅助栈,并按照第二个序列的顺序依...

2019-08-19 15:58:42 111

原创 JAVA编程笔记

Notes of Java Programming

2019-08-19 15:10:11 56

原创 剑指OFFER 面试题30:包含Min函数的栈(JAVA)

题目定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素 min 函数。在栈中,调用 min、push、及 pop 的时间复杂度都是O(1)。思路我们可以使用两个栈,一个数据栈,另一个为辅助栈。辅助栈用于存放最小元素和每次压栈时的次小元素(之前的最小元素和新压入栈的元素两者之间的最小值或相等)。如果每次都把最小元素压入辅助栈,那么就能保证辅助栈顶一直都是最小元素。当最小元素从...

2019-08-19 15:05:29 85

原创 Notes of CFA Level1 READING 9:STATISTICAL CONCEPTS AND MARKET RETURNS

MODULE 9.1: CONDITIONAL AND JOINT PROBABILITIES 条件和联合概率Exhaustive events are those that include all possible outcomes.Mutually exclusive events are events that cannot both happen at the same time....

2019-08-19 13:04:44 300

原创 剑指OFFER 面试题29:顺时针打印矩阵(JAVA)

题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。思路把矩阵看成若干个顺时针方向的圈组成。假设这个矩阵的行数是rows,列数是columns。打印第一个圈是左上角元素的坐标是(0,0),第二圈的左上角的坐标是(1,1),依次类推。我们注意到,左上角的坐标中行标和列标总是相同的,于是可以在矩阵中选取左上角为(start,start)的一圈为我们分析的目标。对一...

2019-08-18 22:07:52 87

原创 剑指OFFER 面试题28(二叉树):对称的二叉树 (JAVA)

题目请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。思路首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同、左子树的右子树和右子树的左子树相同即可,采用递归。代码public class SymmetricalBinaryTree { public static boolean issymmetrical(Binary...

2019-08-18 20:41:16 73

原创 剑指OFFER 面试题27(二叉树):二叉树的镜像(JAVA)

题目请完成一个函数,输入一个二叉树,该函数输出它的镜像。思路(1)交换根节点的左右子树(2)分别交换原左、右子树的根节点的左右子节点。代码(递归)public class MirrorofBinaryTree { public static void mirrortree(BinaryTreeNode root) { if(root==null) {return;}...

2019-08-18 20:01:11 67

原创 剑指OFFER 面试题26(二叉树):树的子结构 (JAVA)

题目输入两棵二叉树A和B,判断B是不是A的子结构。思路(1)在A中找到与B的根节点的值一样的节点R;(2)判断A中以R为根结点的子树是否包含和B一样的结构。代码注意,当比较double的数值是否相等时,不能用“==”,而用下面代码中的函数equal,通过两数之差的绝对值小于一个很小的树来实现。/*class BinaryTreeNode{ double val;...

2019-08-18 15:17:27 122

原创 剑指OFFER 面试题25:合并两个排序的链表 (JAVA)

题目输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。思路我们的分析从合并两个链表的头结点开始。链表1的头结点的值小于链表2的头结点的值,因此链表1的头结点将是合并后链表的头结点。在两个链表中剩下的结点依然是排序的,因此合并这两个链表的步骤和前面的步骤是一样的。我们还是比较两个头结点的值。因此可以用递归的方法。代码采用递归的方法public...

2019-08-16 22:29:12 105

原创 剑指OFFER 面试题24:反转链表 (JAVA)

题目定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思路在图中所示的链表中,h, i, j是3个相邻的结点。假设经过若干的操作,我们已经把结点h之前的指针调整完毕,这些结点的next都指向前面的一个结点。接下来我们把i的next指向h,此时的链表结构如图b所示。为了避免链表在结点 i 处断开,我们需要在调整结点 i 的next之前把结点 j 保存下来。也...

2019-08-16 19:43:25 80

原创 剑指OFFER 面试题23:链表中环的入口节点 (JAVA)

题目给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路第一步是:如何确定一个链表中包含环。定义两个指针,同时从链表的头节点出发,第一个指针一次走一步,第二个指针一次走两步。如果走得快得指针追上了走得慢的指针,那么链表就包含环;如果走得快得指针走到了链表得末尾都没有追上第一个指针,那么链表就不包含环。第二步是:如何找到环的入口、先定义两个指针P1和P2指向...

2019-08-16 09:03:20 94

原创 剑指OFFER 面试题22:链表中倒数第 K 个节点(JAVA)

题目输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个结点是值为4的结点。思路为了实现只遍历链表一次就能找到倒数第k个结点,我们可以定义两个指针。第一个指针从链表的头指针开始遍历向前走k-1。第二个指针保持不动;从第k步开始,第...

2019-08-14 13:52:18 105

原创 剑指OFFER 面试题21:调整数组顺序使奇数位于偶数前面(JAVA)

题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。思路可以维护两个指针,第一个指针初始化时指向数组的第一个数字,它只向后移动;第二个指针初始化时指向数组的最后一个数字,它指向前移动。在两个指针相遇之前,第一个指针总是位于第二个指针的前面。如果第一个指针的数字是偶数,并且第二个指针指向的数字是奇数,我们就交换两个数字。...

2019-08-13 19:49:21 79

原创 剑指OFFER 面试题20:表示数值的字符串(JAVA)

题目请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串“+100”、“5e2”、“-123”、“3.1416”及“-1E-16”都表示数值,但“12e”、“1a3.14”、“1.2.3”、“+-5”及“12e+5.4”都不是。思路数字可能的形式包括:A, A.B, .B, (A/A.B/.B)(e/E)(A)其中注意A前面可存在+/-。代码publi...

2019-08-13 11:02:02 106

原创 Notes of CFA Level1 READING 8:STATISTICAL CONCEPTS AND MARKET RETURNS

kurtosisn. [统计学]峰态lack of symmetry (skewness 偏斜)测量尺度(scale of measure)或称度量水平(level of measurement)、度量类别,是统计学和定量研究中,对不同种类的数据,依据其尺度水平所划分的类别,这些尺度水平分别为:名目(nominal)、次序(ordinal)、等距(interval)、等比(ratio)。...

2019-08-12 11:05:04 439

原创 Notes of CFA Level1 READING 7: DISCOUNTED CASH FLOW APPLICATIONS

net present value (NPV)internal rate of return (IRR):the IRR may be defined as the discount rate for which the NPV of aninvestment is zero.interim payment 临时付款Themoney-weighted rate of retu...

2019-08-12 09:48:59 365

原创 Notes of CFA Level1 READING 6: THE TIME VALUE OF MONEY

TVM:time value of moneyPV: present value discountingFV: future value compoundingCalculators: the TI BAII Plus® (including the BAII Plus Professional) and the HP 12C® (includingthe HP 12C...

2019-08-11 22:33:26 320

原创 剑指OFFER 面试题19(递归):正则表达式匹配(JAVA)

题目请实现一个函数用来匹配包含'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但与"aa.a"及"ab*a"均不匹配。思路当模式中的第二个字符是“*”时: 1. 如果字符串第一个字符跟模式第一个...

2019-08-11 18:29:09 147

原创 剑指OFFER 面试题18_1(链表):删除链表的节点(JAVA)

题目给定单链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点方法1:顺序遍历,O(n)从链表的头结点开始(为了不断链,需找到删除节点的前一个节点,将前一节点指向删除节点的下一节点,即可实现删除节点操作)。方法2:复制下一个节点到要删除的节点将下一节点的内容复制到要删除的节点上,覆盖原有的内容,再把下一个节点删除(将本来要删除的节点指向下下一个节点)。若要删除...

2019-08-11 15:13:16 117

原创 剑指OFFER 面试题17(全排列递归):打印1到最大的n位数(JAVA)

题目输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。思路在遇到比长整型还大的数时,不能通过定义 long number来实现。这时需要考虑用字符串或者数组来表示大数。如果在所有的数字前面补0的话,就会发现n位所有的十进制数其实就是n个从0到9的全排列。也就是说,我们把数字的每一位都从0到9排列一遍,就得到了所有的十进制数。在打...

2019-08-11 11:59:24 165

原创 剑指OFFER 面试题16(位运算):数值的整数次方(JAVA)

题目:实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。使用位运算来提高计算效率:如果指数是32,只要计算16次方的平方,16次方是8次方的平方...计算32次方仅需要做5次乘法。如果指数是奇数,例如33,则先求32次方(5次乘法),再乘以base,一共6次运算。代码...

2019-08-10 20:16:50 100

原创 剑指OFFER 面试题15(二进制):二进制中1的个数 (JAVA)

题目  请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。知识点(二进制的位运算)二进制的位运算只有五种运算(与、或、异或、左移和右移)。左移运算m<<n表示把m左移n位,在左移n位的时候,最左边n位将被丢弃,同时在最右边补上n个0,例如:00001010<<2 = 00...

2019-08-10 17:42:10 81

原创 剑指OFFER 面试题14(动态规划和贪婪算法): 剪绳子 (JAVA)

面试题14:剪绳子题目:给你一根长度为n绳子,请把绳子剪成m段(m、n都是整数,n>1并且m≥1)。每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]*k[1]*…*k[m]可能的最大乘积是多少?例如当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到最大的乘积18。动态规划:用动态规划从上往下分析问题,从下往上解决问题。空间复杂度为O(n),时间复杂度为...

2019-08-10 15:52:38 196

原创 剑指OFFER 面试题13(回溯法): 机器人的运动范围 (JAVA)

题目  地上有一个m行n列的方格。一个机器人从坐标(0, 0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35, 37),因为3+5+3+7=18。但它不能进入方格(35, 38),因为3+5+3+8=19。请问该机器人能够到达多少个格子?代码package codingquestion...

2019-08-09 16:03:36 127

原创 剑指OFFER 面试题12(回溯法):矩阵中的路径 (JAVA)

哇,这题好难!注意字符的标记,使用过的字符标记为1,未使用的字符标记为0。package codingquestions;public class StringPathInMatrix { public static boolean haspath(char[] matrix, int rows, int cols, char str[]) { char[][] mat =new ...

2019-08-06 14:46:42 98

原创 剑指OFFER 面试题11:旋转数组中的最小数字 (JAVA)

遍历数组的时间复杂度是O(n)。考虑旋转数组的特性(可以将旋转后的数组分成两个子数组,前面的子数组的元素都大于后面子数组的元素,最小的元素刚好是这两个子数组的分界线),在排序的数组中可以用二分查找法实现O(logn)的查找。但是对于一些特例,例如{1,0,1,1,1}和{1,1,1,0,1} 第一个数字、最后一个数字和中间的数字都是1,难以确定中间的数字数以第一递增子数组还是第二递增子数组...

2019-08-01 09:49:45 140

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除