自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快速排序复习

网上抄来抄去的博客乱七八糟的太多了,标准的写法,实现一个partition函数和一个sort函数。partition函数负责寻找每次的分割点,sort函数负责递归调用左右分段。partition函数需要传入一个初始选定的轴心下标,将其交换到数组末尾, 锚定一个分组下标(初始从最左边开始) 然后从数组左边到 [末尾-1] 的所有数字可以遍历一次来进行分组, 碰到比轴心值小的,就和锚定值交换,锚定下标往右移动,最后返回锚定的下标。上层sort函数对返回的锚定下标进行左右分组的sort,就完成

2021-08-01 15:57:16 172

原创 Leetcode 138 和 Java的深拷贝

今天做到leetcode的138题,题目是返回一个拥有随机指针的链表的深拷贝。由于我是用Java做的,先深入复习一下Java的对象拷贝机制。Java类型和浅拷贝Java的类型分为值类型和引用类型。其中值类型包括所有的基本类型,char, boolean, int, double, float, long, short, byte。其他的类、接口、枚举和数组等都是引用类型。...

2020-01-30 19:24:20 387

原创 Bloom Filter (布隆过滤器) 介绍以及简单的Java实现

定义布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。从简单的定义可以看出,使用布隆过滤器目的是为了优化元素查找的性能,不过布隆过滤器提升的是得到这个元素(key)的存在性的性能。...

2020-01-01 18:09:03 1022 4

原创 Java获取Cookie特殊字符处理

今天在工作中遇到一个问题,用request对象getCookies的时候,发现如果Cookie的value里面带有一些特殊字符,是会在request中就被过滤掉,从而缺失特殊字符后面的内容。去查了一下,是因为RFC规范中规定了Cookie中不允许带有一些特殊字符,例如这一串:{ '\t', ' ', '\"', '(', ')', ',', ':', ';', '', '=', '>', 

2016-07-13 23:11:27 4150 2

原创 Mongodb上一次非正常关闭后修复

rm -rf /data/mongodb/data/puf_sfap/mongod.lockrm -rf /data/mongodb/data/puf_sfap/WiredTiger.lock/data/mongodb/bin/mongod --repair -f /data/mongodb/config/mongod.conf -nojournal --repairpath /data/mo

2016-04-07 12:03:20 3640 1

原创 搭mongodb+zookeeper+kafka环境

先说最简单的mongodb1.解压mongodb的包2.启动命令为 ./bin/mongod --config ./config/mongod.conf需要主意的点:修改mongod.conf中的内容与mongodb文件的解压目录(*path)要匹配systemLog: destination: file path: /home/mongodb/log/mongod.l

2016-01-26 15:06:30 4514

原创 《算法导论》代码搬运工--堆排序

最近买了本中文版的《算法导论》,打算系统的看一下基础的算法,并尽量的实现一下书上的代码例子。书很厚,内容很多,有简单的也有难懂的,所以打算开一个新的系列,长期不定时的加入新的内容,就叫《算法导论》代码搬运工系列。代码基本都是用java实现的,实现语言并不重要,java和C的语法差别也并不大。这一篇来搬运一个基础的排序算法:堆排序。堆排序:顾名思义,就是用堆来实现排序的功能,那么在堆排序之前

2015-10-12 10:52:56 1202

原创 BitMap算法

对大量数据(超过内存上限的数据)的排序,典型的有外部排序,但是如果对不重复数据排序,还可以用bitmap算法。bitmap算法的思想就是用一个整型的32位中的每一位去记录一个数,所以,每一个整型可以记录32个数,这样可以大大的节省空间,更加官方的解释有很多博客都有记载,更可以参考《编程珠玑》。这里贴一下java的代码,都使用位运算。public class Bitmap { sta

2015-09-23 12:38:30 925

原创 二叉树系列--层序遍历(java实现)

记录两道题目:第一题:计算二叉树的深度,两行递归即可搞定。public static int level(Node root) { if (root == null) return 0; return level(root.left) + 1 > level(root.right) + 1 ? level(root.left) + 1 : level(root.rig

2015-09-19 19:52:02 6419

原创 非递归遍历二叉树--java实现

经典数据结构--二叉树的遍历递归遍历二叉树只有三行代码,特别容易理解且特别容易实现,但是非递归就没有那么的一目了然,不过其实就是把递归的做法平铺开来而已。下面来看每一种顺序的做法。先序遍历:也就是先访问根节点,再左孩子,再右孩子。如何做呢,用手在纸上画一颗简单的二叉树,你会发现,先序遍历的顺序就是从根节点开始,一直访问左孩子,直到叶子(无孩子),然后访问这个叶子的父亲的右孩子(可能是子二叉

2015-09-17 17:35:46 600

原创 记录几个将来要看的问题

1.java的异常处理,包括finally的执行顺序细节2.java的并发线程安全解决办法,重点看重入锁3.外部排序

2015-09-05 23:43:59 570

原创 java的四种引用

很多详细的东西在网上都可以找到,因为这个问题在面试中被提到过,所以特此做一个简单的笔记。java中有四种引用的方法(按照从强到弱):第一种:强引用,也就是一般的对象引用。特点是不管在什么时候,此引用的对象都不会被垃圾回收,JVM会在堆满的时候抛异常,也不会回收。。。第二种:软引用,使用格式:SoftRefrence o = new SoftRefrence(); 只要内存空间足够,就不

2015-09-05 22:53:53 618

原创 网易校园招聘java面试经历

之前投过阿里,无奈缺乏实战经验,算法能力也不够出众,面试的时候没什么可说的被刷。这次被通知过了电话面试,所以就去了现场面。这是我第一次过了所有轮的技术面最后面了HR面的经历,所以对我挺有意义的,所以想写下来。先说说之前的电话面吧,接到电话的时候我刚刚坐飞机在浦东机场降落,所以跟面试官约了第二天上午,第二天上午电话准时响起。网易的电面不像阿里的一样会有较长的前戏,当时阿里电面跟我聊了很多我研

2015-09-01 10:39:44 6575 7

原创 Tomcat能够在eclipse里启动,但是不能访问首页的问题

今天在使用eclipse的时候发现一个问题,就是我在eclipse里面已经启动了tomcat,部署上去的项目也可以启动,但是就是没法访问tomcat的首页,端口等等都没有问题。后来查到解决方案,在这里记录一下:1.进入控制台(console)标签旁边的服务器标签(server)2.双击已经存在的server3.把里面server locations这个选项卡里面 specify t

2015-07-13 15:22:24 743

原创 MongoDB中对象反序列化的一个小问题

今天在mongoDB存取对象数据的时候,碰到一个小问题:对象的某一个字段类型是抽象类或者接口,在存入的时候没有问题,但是在读取的时候,由于没有具体类的信息,无法完成对象的重新构建,就会报错:Can not construct instance of com.bp.samples.json.generics.xxx, problem: abstract types either need to

2015-07-07 16:13:09 4603 1

原创 leetcode:Isomorphic Strings (java)

记录一道hashtable的题,用两次互相的字符(s[i])到字符(t[i])映射记录,然后按照映射还原比较就可以判断是否相同,开始以为只有字母,后来发现是ascii码表长度的alphabet才可以~public static boolean isIsomorphic(String s, String t) { char[] alph1 = new char[128];

2015-05-05 12:23:43 797

原创 leetcode: Reverse Linked List(java)

哎呀,糟了,leetcode又有easy题了,好久没上,直接在网站上A了。题目就是把一个链表倒过来。。。public ListNode reverseList(ListNode head) { if(head == null)return null; ListNode preNode = null; ListNode curNo

2015-05-05 11:49:55 721

原创 leetcode: Remove Linked List Elements(java)

Remove all elements from a linked list of integers that have value val.ExampleGiven: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6Return: 1 --> 2 --> 3 --> 4 --> 5Credits:Special than

2015-04-24 14:42:59 800

原创 leetcode: Happy Number

题意:Write an algorithm to determine if a number is "happy".A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of th

2015-04-22 12:38:04 1068

原创 leetcode:sudoku solver

sudoku solver

2015-04-15 14:52:07 533

原创 leetcode:Path Sum II

又一道DFS题,题意如下:Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.For example:Given the below binary tree and sum = 22, 5

2015-04-08 01:51:55 525

原创 leetcode:Populating Next Right Pointers in Each Node

一道DFS的题目,题意如下:Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.An example is the root-to-leaf path 1->2->3 which represents the number 1

2015-04-08 00:55:29 513

转载 Java类生命周期详解--转载

最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题,权当抛砖引玉,希望对在这个问题上有疑惑的朋友有所帮助,文中有说的不对的地方,也

2015-03-29 15:44:28 493

原创 重载和重写

长话短说。重载(overloading):相同的函数名,必须具有不同的参数列表,返回值可同可不同。最常见的是同一个类的不同参数列表的构造函数。重写(overriding):也称覆盖。必须具有相同的函数名和参数列表以及返回值,改变方法体。最常见的就是子类覆盖父类方法,使用子类实例调用方法时,调用的是子类的方法。

2015-03-21 00:06:19 567

原创 JAVA的抽象类与接口

首先用我自己的理解,来描述一下我对java中的接口(狭义上的)和抽象类的理解。先来看接口,形如:public interface IncrementTool { public int increment(int a);}在接口中,我们定义方法的名称、参数列表和返回类型,但是没有方法的实现。然后我们可以写一些类去实现这个接口:public class Increment1 imp

2015-03-09 23:49:39 489

原创 Spring配置web.xml文件时遇到的问题

Could not open ServletContext resource [/WEB-INF/petstore-servlet.xml]这是我第一次试验spring第一个页面跳转时候碰到的问题,其实一个拼写错误的问题,在xml中 petstore org.springframework.web.servlet.DispatcherServlet

2015-02-28 21:38:35 673

转载 哈希的原理

哈希的原理和代价     哈希表和哈希函数是大学数据结构中的课程,实际开发中我们经常用到Hashtable这种结构,当遇到键-值对存储,采用Hashtable比ArrayList查找的性能高。为什么呢?我们在享受高性能的同时,需要付出什么代价(这几天看红顶商人胡雪岩,经典台词:在你享受这之前,必须受别人吃不了的苦,忍受别人受不了的屈辱),那么使用Hashtable是否就是一桩无本万

2015-02-26 14:24:58 810

原创 leetcode: Triangle

题意:Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.For example, given the following triangle[ [2], [3

2015-02-16 00:20:08 553

原创 leetcode majority element

题目:Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority

2015-02-14 20:33:08 471

原创 java中String的相等判断(==和equals())详解

以前只是一直用equal来判断字符串变量是不是和某个定值相等,知道这样比较稳妥,但是我想有必要说说清楚这其中的原理。首先,引入java常量池的概念,也就是编译的时候,常量们会被确定在.class文件中,虽然String不是8种java常量之一,是一种对象,但是如果用如下的赋值,还是会成为常量。比如:String str1 = "cityu";String str2 = "cityu"

2015-02-12 14:59:41 22679 4

转载 小问题记录:JAVA String.split

引用其他博主的一片博文,学习一下split的用法:原文地址http://yangzb.iteye.com/blog/1824761在java.lang包中有String.split()方法,返回是一个数组。  1、“.”和“|”都是转义字符,必须得加"\\";  如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用Strin

2015-02-12 14:47:37 534

转载 NIO入门详解

NIO 入门JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并考察更新后的库中的标准 I/O 是如何工作的。您还将了解只能通过 NIO 来完成的工作,如异步 I/O 和直接缓冲区。

2015-02-11 16:54:41 878

原创 JAVA多线程

什么SOCKET,RMI都不想说了,我只想说,多线程如果发现有的线程好像被阻塞了,那么赶快调试一下,很有可能你根本就只启动了一个线程。而原因很有可能就是,我今天碰到的问题:在new线程的时候,千万不要用实名变量,一定要用匿名变量去run或者start,不然就只有一个线程会启动。别问我怎么知道的T T。

2015-02-11 01:31:59 474

转载 github版本库使用详细教程(命令行及图形界面版)

Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括 Rubinius和Merb在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。如前所述,作为一个分布式的版本控制系统,在Git中并

2015-02-05 10:50:31 954

原创 leetcode unique BST

Given n, how many structurally unique BST's (binary search trees) that store values 1...n?For example,Given n = 3, there are a total of 5 unique BST's. 1 3 3 2 1 \

2015-02-03 13:40:55 839

原创 动态规划 最大子数组

这是一个经典的动态规划问题,之前一直懵懵懂懂,今日看了不少解释和理解,终于看到了一种让我彻底理解的方法。首先,问题是,求一个给定数组的一个连续子数组,和最大,给定数组的元素可正可负。既然是动态规划,就是不放假设已知当前最优解,求接下来的最优解。有一件很容易理解的事情,就是------- 一个数加上一个正数,会变大,一个数加上一个负数,会变小。在这里,这个被加上去的数,就是当前已经得

2015-01-30 16:17:42 957

原创 最长回文子串 leetcode 05 DP解法

找出最长回文子串,马上想到了用DP,用 dp[ i ][ j ] = 1表示s[ i ]----s[ j ]是一个回文串  dp[ i ][ j ] = 0就表示s[ i ]---[ j ]为非回文,方程可以表示为  if(s[ i ]==s[ j ])  dp[ i ][ j ] = dp[ i+1 ][ j-1 ],其实也可以明确为,前一个子串是回文串的,当前才继续做判断,否则直接不管,可

2015-01-26 14:44:17 1524

原创 OpenCV图像匹配 (image retrieval)理论篇

前段时间,非常不幸的在wap面试中没有做出第二题,题目太简单了,我都不好意思在这里说,只是当时太紧张了,脑子有点短路,时间太短,直接

2014-11-24 22:43:22 2502 1

原创 两道用到二分法的math题:Sqrt(x) && Pow(x, n)

第一题求一个int数的平方根,返回值也是int,开始直接

2014-11-17 00:32:57 624

原创 Linked List Cycle

这两道题也用到了快慢指针,前一题

2014-11-15 16:54:17 480 2

空空如也

空空如也

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

TA关注的人

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