自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python之sklearn学习笔记

前言:本文是学习笔记。sklearn介绍scikit-learn是数据挖掘与分析的简单而有效的工具。 依赖于NumPy, SciPy和matplotlib。它主要包含以下几部分内容:从功能来分: classificationRegressionClusteringDimensionality reductionModel selectionPreprocessing从API模块来分

2016-12-21 09:36:55 46817 5

原创 Latex引用bib文件步骤

引用cite包首先我们要在tex文件前面添加使用cite包\documentclass{article}\usepackage{cite}\begin{document}...文中引用对应论文这个过程有两个步骤。首先建立一个新的后缀为bib的文件,例如文件名为:cited.bib。其次google scholar你要引用的paper,获取其bibtex,并copy到你的bib文件中。另一方面,

2016-11-08 09:43:09 72537 6

原创 数据结构:链表大解析(java实现)

¥本文内容主要总结链表的的相关知识与常见题目一、链表的定义链表是线性表的链式存储的实现(物理顺序可以是任意的,不一定要与逻辑顺序一致)。线性表是指存储相同类型的一组数据,除了第一个和最后一个元素外,每一个元素都有它的一个直接前驱和直接后继,第一个元素有一个直接后继,最后一个元素有一个直接前驱。链表基本元素是结点,它里面包含数据域与指针域,结点之间用指针连接起来,形成一个简单的链。它有以下几种类型:二

2016-08-09 20:51:01 5957

转载 java:Class.forName()机制详解

参考:http://www.cnblogs.com/springcsc/archive/2010/03/03/1676977.html注:从别人那里看到的,先贴在这里。后面有机会再整理一下。Class.forName(xxx.xx.xx) 返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。至于什么时候用,你可以考虑一

2016-08-09 15:08:01 4689

原创 设计模式(一):单例模式 java实现

参考:http://blog.csdn.net/jason0539/article/details/23297037/单例模式:指的是一个类只有一个实例对象。它的设计是为了实现类的单一功能。专注于自己的事情。有如下三个特点: 单例类只有一个实例 单例类必须自己创建这一个实例 单例类必须将自己的这个实例提供给其他对象 因此我们在实现单例类的时候要注意一下几点: 首先禁

2016-08-09 15:05:56 548

原创 金网安泰JAVA开发工程师面经

时间:2016.8.5本来我一直是投数据挖掘算法岗的,但是有些公司不招这方面的,我就打算去尝试尝试开发岗位。(由于本人编程能力太差,没有底气去面大公司的JAVA开发)下午做了两个多小时的地铁才从学校跑到软件园。。。累死。。。困死。。。去了一进门,表明来意,前台女的就说面试的怎么来这么迟。。。问我带简历没,我说没。那先填个简历。。拿过表来去会议室填了。。一会又一个妹子,说你填好了来找我,安排机试。。。

2016-08-06 09:42:14 1790

原创 百度数据挖掘实习生一面电话面

时间:2016.8.4岗位:数据挖掘实习生 部门:系统部简介:面试主要围绕项目,数据挖掘算法,java的一些特性,以及周边python, linux等的了解程度。整个过程面试官非常nice,气氛很融洽。一:自我介绍 二:针对项目,问一些细节,主要包括,这个项目主要是干什么的,你在里面负责了什么,要能把具体过程说清楚。然后里面涉及的具体技术点要懂得原理。 三:数据挖掘算法,其实这块主要和项目结合

2016-08-06 09:22:19 1597

原创 数据结构:排序算法

排序算法<<插入排序>>*直接插入排序*思想 每次取剩下的一个元素插入到已经有序的序列中.代码public static void InsertSort(int[] arr){ if(arr == null || arr.length == 0){ System.err.println("ERROR INPUT"); return

2016-07-15 10:48:04 1029

原创 Hadoop实战:MapReduce应用实例

参考:hadoop实战一.WordCount任务:统计文件中单词的频率代码:package mapreduce;import java.io.IOException;import java.util.Iterator;import java.util.StringTokenizer;import org.apache.hadoop.conf.*;import org.apache.ha

2016-07-10 16:52:38 10394

原创 Hadoop学习笔记:(一)WordCount运行

前言:本文是在hadoop已经配置好的情况下WordCount是hadoop下的HelloWorld程序,是初学者必须要会的。下面是用eclipse进行开发一、工程与MapReduce代码 新建工程,创建WordCount class 下面的代码是旧版mapreducepackage mapreduce;import java.io.IOException;import java.u

2016-07-10 10:51:15 1042

原创 牛客网程序员面试金典:1.2——原串翻转(java实现)

问题描述: 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。 测试样例: “This is nowcoder” 返回:”redocwon si sihT”思路1: 直接首尾交换即可public Str

2016-07-09 13:25:10 960

原创 牛客网程序员面试金典:1.1确定字符互异(java实现)

问题描述: 请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。 测试样例: “aeiou”返回:True “BarackObama”返回:False思

2016-07-09 11:11:40 963

原创 剑指Offer:面试题34——丑数(java实现)

问题描述: 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。思路1:(显然是比较耗时的) 直接去判断每个整数是不是丑数,然后找到第N个小的数。(牛客网提交超时)public int GetUglyNumber_Solution(int index) {

2016-07-09 10:13:06 991

原创 剑指Offer:面试题33——把数组排成最小的数(java实现)(未完待续)

问题描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路1: 最直接的做法就是先求出这个数组中的所有数字的全排列,然后把每个排列拼起来,最后求出i拼起来的数字的最小值。思路2: 1.找到一种排序规则,数组根据这个排序规则能拍成一个最小的数字比如m与n

2016-07-09 09:22:06 107

原创 剑指Offer:面试题32——从1到n整数中1出现的次数(java实现)

问题描述: 输入一个整数n,求1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11,12,1一共出现了5次。思路:(不考虑时间效率的解法,肯定不是面试官期望的) 直观想法:累加1到n中每个整数中1出现的次数。 每个整数中1出现的次数可以由除以10和模10来计算得到。代码如下:boolean invalidInput = fals

2016-07-08 17:10:40 458

原创 剑指Offer:面试题32——从1到n整数中1出现的次数(java实现)

问题描述: 输入一个整数n,求1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11,12,1一共出现了5次。思路:(不考虑时间效率的解法,肯定不是面试官期望的) 直观想法:累加1到n中每个整数中1出现的次数。 每个整数中1出现的次数可以由除以10和模10来计算得到。代码如下:boolean invalidInput = fals

2016-07-08 17:10:20 2323

原创 剑指Offer:面试题31——连续子数组的最大和(java实现)

问题描述 : 输入一个整数数组,数组里面有正数也有负数。数组中一个或连续几个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)思路1:常规解法,不知道怎么描述了。。代码:boolean invalidInput = false; public int FindGreatestSumOfSubArray(int[] array) { if(array =

2016-07-08 16:32:05 661

原创 剑指Offer:面试题30——最小的k个数(java实现)

问题描述: 输入n个整数,找出其中最小的k个数思路1: 先排序,再取前k个 时间复杂度O(nlogn)下面给出快排序的代码(基于下面Partition函数的方法)public void QuickSort(int[] arr, int start, int end){ if(start == end){ return; } int index

2016-07-08 16:05:00 1632

原创 剑指Offer:面试题29——数组中出现次数超过一半的数字(java实现)

PS:在前几天的面试中,被问到了这个题。然而当时只能用最低效的方法来解。问题描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路1: 低效的做法:直接用哈稀表来存储<key, value>,并找出出现次数value大于等

2016-07-08 11:34:50 2175 4

原创 剑指Offer:解决难题时的三大方法

1.画图 让抽象的东西变得直观生动起来。比如设计二叉树,链表,栈,队列这些数据结构时。2.举例子 同样可以化抽象为直观。能够更清晰的展现思路。从例子归纳出一般做法。3.分解 有时问题本身是比较复杂的,但是它可以分解成几个简单的部分。思路通常是使用分治法,动态规划等方法。

2016-07-08 10:02:52 834

原创 剑指Offer:面试题28——字符串的排列(java实现)(待序)

问题描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 思路: 全排列,固定第一位,剩余的部分继续全排列。代码:

2016-07-07 21:40:59 438

原创 剑指Offer:面试题27——二叉搜索树与双向链表(java实现)

问题描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路: 将树分为三部分:左子树,根结点,右子树。 1.我们要把根结点与左子树的最大结点连接起来 2.要把根结点与右子树的最小结点连接起来。代码:(本来按照书上的写的代码,可是得到的结果不对)(下面的代码是他人的代码)/**public class T

2016-07-07 20:11:00 944

原创 剑指Offer:面试题26——复制复杂的链表(java实现)

问题描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。思路1: 1.先复制链表节点,并用next链接起来。 2.然后对每一个结点去修改它的随机指针S。遍历链表找到S。 时间复杂度O(n^2)思路2: 1.先复制链表节点N-N’,并用next链接起来,并用一个哈系表存储《N, N‘》结点对, 2.然后对每

2016-07-07 17:44:19 1096

原创 剑指Offer:面试题25——二叉树中和为某一值的路径(java实现)

问题描述: 输入一棵二叉树和一个整数,打印出二叉树中结点指的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。二叉树结点的定义如下:public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int

2016-07-07 17:10:03 690

原创 剑指Offer:面试题24——二叉搜索树的后序遍历序列(java实现)

问题描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。思路: 1.首先后序遍历的结果是[(左子树的后序)(右子树的后序)根结点],那么我们首先找到了根结点的值, 2.其次,我们知道二叉搜索树的性质是:任何结点的左子树的值小于根结点的值,小于右子树的值。 3.因此,从后向前遍历

2016-07-07 15:49:47 489

原创 剑指Offer:面试题23——从上往下打印二叉树(java实现)

问题描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路: 按照层次遍历的方法,使用队列辅助。 1.将根结点加入队列。 2.循环出队,打印当前元素,若该结点有左子树,则将其加入队列,若有右子树,将其加入队列。 3.直到队列为空,表明已经打印完所有结点。代码:import java.util.ArrayList;import java.util.Queue

2016-07-07 15:03:17 2310

原创 剑指Offer:面试题22——栈的压入,弹出序列(java实现)

题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。 思路: 遍历待测试序列,如果当前元素在栈顶,出栈即可,否则,查看是否所有待入栈元素已入栈,如是说明当前元素在栈里面

2016-07-07 11:46:12 2228

原创 剑指Offer:面试题21——包含min函数的栈(java实现)

问题描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push及pop的时间复杂度都是O(1).思路:加入一个辅助栈用来存储最小值集合(这里要注意题目并没有说栈内的元素类型,因此要尽量通用)import java.util.Stack;public class Solution { Stack s1=new Stack();

2016-07-07 10:58:28 1045

原创 剑指Offer:面试题20——顺时针打印矩阵(java实现)

题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数 字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路1(自己想的): 每次打印一行矩阵,然后将剩余的部分

2016-07-07 10:06:00 3773

原创 剑指Offer:面试题19——二叉树的镜像(java实现)

问题描述: 操作给定的二叉树,将其变换为源二叉树的镜像。 二叉树结点定义为:public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}例如:

2016-07-07 08:54:37 957

原创 写代码时注意的几点

一.规范性书写清晰布局清晰命名合理 命名尽量使用有意义的单词; 变量常用i,j,k命名; 函数常用f,h,g命名。二.完整性完成基本功能考虑边界条件 做好错误处理对应的考虑好三个测试功能性测试 边界测试 容错测试 三.鲁棒性采取防御式编程 处理无效的输入

2016-07-06 17:12:25 397

原创 剑指Offer:面试题18——树的子结构(java实现)

问题描述: 输入两棵二叉树A和B,判断B是不是A的子结构。二叉树结点的定义如下:public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}思路1:

2016-07-06 17:04:36 1023

原创 剑指Offer:面试题17——合并两个排序的链表

题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路1: 分别用p1,p2两个指针扫描两个有序链表,p3指针去构建新链表h3. p1.val <= p2.val,则p3把p1指向的结点加入h3,p1后移动。反之,对p2进行对应操作。代码:(未验证正确性,提交时显示超时,所以不知道功能是否实现,还是仅仅时间复杂度高?)public

2016-07-06 16:45:06 631

原创 剑指Offer:面试题16——反转链表(java实现)

问题描述 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。链表结点如下:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}思路:

2016-07-06 15:52:51 4610 2

原创 剑指Offer:面试题15——链表中倒数第k个结点(java实现)

问题描述 输入一个链表,输出该链表中倒数第k个结点。(尾结点是倒数第一个)结点定义如下:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}思路1: 先遍历链表,计算其长度length; 然后计算出倒数第

2016-07-06 15:50:35 540

原创 剑指Offer:面试题14——调整数组顺序使奇数位于偶数前面(java实现)

问题描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。思路: 1.最简单的想法,不考虑时间复杂度,扫描数组,遇到偶数,先取出这个数,然后把它后面的数字都往前面移动一位,这样最后空出一位放该偶数即可。但显然这样会重复移动很多次。时间复杂的O(n^2) 2.在前后安排两个哨兵i,j,前面的用来指示偶数(即扫描如果是奇

2016-07-06 15:29:57 3385 2

原创 链表:删除链表中重复的结点(java实现)

题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5代码如下:未进行优化 public class ListNode { int val; ListNode next = null; ListNode(int val) { t

2016-07-06 12:08:28 1090

原创 剑指Offer:面试题13——在O(1)时间删除链表结点

问题描述: 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。链表结点与函数的定义如下:public class ListNode{ int value; ListNode next; public ListNode(int v){value = v;}}思路:常规的做法就是遍历链表找到被删除结点的前趋p,然后改变p->next的指向即可。但是

2016-07-06 11:27:41 689

原创 剑指Offer:面试题12——打印1到最大的n位数(java实现)

问题描述: 输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的3位数即999.思路1:最简单的想法就是先找出最大的n位数,然后循环打印即可。public static void Print1ToMaxOfNDigits_1(int n){ int number = 1; int i = 0; while(i++ < n){

2016-07-06 11:07:28 6235

原创 剑指Offer:面试题11——数值的整数次方(java实现)

题目描述: 实现函数double Power(double base, int exponent),求base的exponent次方,不得使用库函数,同时不需要考虑大数问题思路:本题的重点考察内容是代码的完整性,要综合考虑输入的合法性,边界值等等,同时也可以进行优化实现一:public double Power(double base, int exponent){ double res

2016-07-06 10:15:27 493

空空如也

空空如也

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

TA关注的人

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