自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(253)
  • 资源 (4)
  • 收藏
  • 关注

原创 【东南亚最大互联网公司 Grab 招人啦~】

公司简介Grab,东南亚科技创业公司独角兽,为东南亚各国家提供出行,支付,金融,地图,外卖,送餐,物流等服务,业务遍布8个国家336个城市。2018年3月收购了Uber(优步)在东南亚的业务之后,Grab已经在整个东南亚出行领域占据领先地位。Grab全球范围内有新加坡,西雅图,北京,班加罗尔,雅加达,胡志明市、吉隆坡等研发中心,共计数千人的研发团队。Grab的使命是“Drive...

2019-12-10 23:38:21 545

原创 【东南亚最大互联网公司 Grab 招人啦~】

【东南亚最大互联网公司 Grab 招人啦~】公司简介Grab,东南亚科技创业公司独角兽,为东南亚各国家提供出行,支付,金融,地图,外卖,送餐,物流等服务,业务遍布8个国家336个城市。2018年3月收购了Uber(优步)在东南亚的业务之后,Grab已经在整个东南亚出行领域占据领先地位。Grab全球范围内有新加坡,西雅图,北京,班加罗尔,雅加达,胡志明市、吉隆坡等研发中心,共计数千人的研发团队。...

2019-12-10 23:28:52 1941

原创 复习基数排序

public class LSD { class Node { int val; Node next; public Node(int val) { this.val = val; } @Override public S...

2019-02-21 00:31:00 352

原创 生产者消费者实现2

1.用Object#wait/notifyAll 实现package com.multithread.condition;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;/** * created by Et...

2019-02-17 20:38:00 184

原创 LRU 的几种java实现

1.双向链表package LRU;import java.util.Iterator;import java.util.LinkedList;/** * LRU: 最近最少使用算法 。 最近最少使用的元素,在接下来一段时间内,被访问的概率也很低。 * 即最近被使用的元素,在接下来一段时间内,被访问概率较高。 * <p> *...

2019-02-16 16:08:00 287

原创 全排列

递归不支持字典序,只支持全排列1. 不含重复元素的全排列/** * <p> * 求数组 a 从 a[start] 到 a[end] 的全排列 * 每次选中一个元素放在位置为 start 上,然后递归排列 a[start+1] a[end] * 支持字典序(要求初始序列为字典序) * 不支持重...

2019-02-03 20:27:00 207

原创 树中两个节点的最近祖先

/** * 两个树节点的最近公共祖先 * 1. 二叉树还是多叉树 * 2. 叶节点还是任意节点(可能出现一个节点是另外一个节点的祖先) * 3. 若是二叉树:是普通的二叉树还是二叉搜索树 * 二叉搜索树:给定父节点,判断大小、往下递归循环即可 * 普通二叉树:和多叉树情况下的操作相同 * * 4. 若是多叉树:是否有父节点指针? * 有...

2018-12-30 01:28:00 533

原创 判断树是否是AVL

方法一(不推荐) /** * 判断树是否是 AVL * 方法一: * 首先判断当前节点是否平衡(计算左右子树的高度),然后前序遍历所有的节点,判断每个节点是否平衡 * <p> * 缺点:计算当前节点的高度时,左右子树都全部被遍历了一遍。再判断左子节点是否平衡,计算高度,又会将左子节点的...

2018-12-29 20:56:00 1322

原创 判断树是否是二叉搜索树

public boolean isValidBST(TreeNode root) { int[] minmax = new int[2]; return isBST(root, minmax); } public boolean isBST(TreeNode root, int[] minmax) {...

2018-12-29 20:43:00 171

原创 前序中序后序重建二叉树

前序+中序: public TreeNode buildTree(int[] preorder, int[] inorder) { return buildTree(preorder, inorder, 0, 0, inorder.length); } public TreeNode buildTree(int...

2018-12-28 03:23:00 559 1

原创 二叉树的非递归遍历

public class TraverseOrder { public void visit(TreeNode node) { System.out.print(node.val + ","); } /** * 树的非递归前序遍历 * 先访问节点,只压节点的右子树,进入到左子树。 ...

2018-12-26 05:00:00 134

原创 删除无序/有序单链表中的重复元素

import leetcode.ListNode;import org.junit.Test;import java.util.HashMap;import java.util.HashSet;/** * created by Ethan-Walker on 2018/12/25 */public class DeleteNode {...

2018-12-26 03:43:00 1500

原创 计算数组中每个数左边/右边第一个比其大/小的值

计算数组中每个数左边第一个比其大的值如果用最简单的暴力法,时间复杂度最坏情况下 O(n^2)用栈解决,遍历到a[i]当栈中为空,直接压入栈不为空,比较栈顶元素 top 和 a[i]。 若 top < a[i] ,弹出栈顶元素。循环执行,直到遇到第一个 top>a[i] (top即为第一个比其大的元素)或者 栈为空(左边没有比 a[i]...

2018-12-19 15:12:00 2324

原创 2018-12-01

最近状态很差,前段时间拔牙前前后后被折磨了两个多礼拜。最近半个月失眠严重,每天一两点躺床上,都得到五六点才能睡着。第二天起来头晕的厉害。希望尽快调整过来吧。2018最后一个月,想想自己都快22了。时间过得真快。 ...

2018-12-01 01:31:00 139

原创 2018-11-10

有两条路在面前,选择难走的那条。

2018-11-10 00:50:00 129

原创 并查集—HDU1272

HDU1272用并查集来做,当新插入的通道(a—b)属于同一个集合,说明a—b已经连通,再插入会导致成环这题有几个注意点:插入的通道 6 - 8, 并不表明 1~8 都在集合中(集合中可能只有6、8),故在判断时要注意有些数值在集合中,哪些不在不仅要保证插入通道(a—b)时,a、b不在同一集合,还要保证最后统计所有已插入集合的数,只存在一个集合,如果是多个集合说明有些点之间不可达...

2018-11-08 16:11:31 211

原创 并查集-HDU1232

hdu1232并查集,求最后的集合数k,需要建设的道路数目=k-1 能保证所有的城镇连通package 并查集;import java.util.Scanner;/** * created by Ethan-Walker on 2018/11/8 */public class HDU1232 { private static int[] parent = new in...

2018-11-08 16:02:35 180

原创 元素去重、计数

package remove_duplicate;import java.util.*;/** * 元素去重 计数 * 数值范围 : [0,10000) * hash array set 预排序+双指针 基数排序 * 1 万 2(ms) 28 31 ...

2018-10-02 16:49:00 365

原创 C语言处理字符串整数转换

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int count(int n);char* itoaa(int n);void reverse(char *s, int length);int atoii(char *s);int _pow(int base, int ...

2018-10-02 16:42:00 242

原创 使用 Ideal Graph Visualizer 分析编译代码过程

1. 下载配置 Ideal Graph Visualizer1.1 下载 Ideal Graph Visualizer适用于windows 或者 linux 解压 igv_latest.zip 得到 idealgrapjvisualizer 文件夹 image.png image.png1.2 配置 jdk 路径只能是JDK6或者7, 不支持JDK8,9...

2018-09-20 23:02:00 1312

原创 Ubuntu上编译 openjdk 源码

编译 openjdk 源码能够获得两种版本的 jdk,一种是 debug 版本,还有一种是 product 版本虚拟机大部分参数可以在 product 版本上直接操作,但是跟踪本地代码生成的具体过程相关参数信息(如 -XX:PrintIdealGraphLevel=2等),必须在 debug 版本的 openjdk 才能执行。两种版本的编译方式仅仅在下面所述的第 5 步有差别1 安装 ...

2018-09-20 19:54:00 383

原创 如何使用 jps+jstatd 访问远程服务器上的jvm进程

1. 问题来源jps 可以打印出所有的 JVM 进程,也可以通过jps hostid访问远程节点上的 JVM进程,但需要远程节点注册相关的服务,并且开放相关端口才允许其他节点访问2. jstatd 简介jstatd工具是一个RMI服务器应用程序,主要用于监控HotSpot Java 虚拟机的创建与终止,并提供一个接口以允许远程监控工具附加到本地主机上运行的JVM上。jstatd服务...

2018-09-08 23:20:00 1141

原创 最消耗CPU的java线程?

当我们运行程序的时候,如果导致CPU大量被消耗,可能是我们的Java程序出现了问题,就需要定位到可能消耗大量CPU的线程,如何去做呢?例如运行下面的程序import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class BusyThread ...

2018-09-08 17:19:00 959

原创 Linux 下载配置Hsdis 、JITWatch

1. 下载配置 Hsdis之前是在网站 https://kenai.com/projects/base-hsdis/downloads 可以下载到,但是该网站现已关闭, 在github 上找到一个仓库提供git clone https://github.com/liuzhengyang/hsdiscd hsdistar -zxvf binutils-2.26.tar.gzmake ...

2018-09-08 13:22:00 1162

原创 CyclierBarrier 和 CountDawnLatch

CountDawnLatch用 CountDownLatch 控制多个线程同时开始思路: 通过主线程设置 CountDawnLatch 值为 1,其他线程设置 await(),等待count=0, 主线程执行 count.countDown(),唤醒所有等待线程/** * 用 CountDownLatch 控制多个线程同时开始 * 思路: 通过主线程设置 CountDawnLat...

2018-08-20 16:33:00 746

原创 八皇后问题

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种计算机语言可以解决此问题。...

2018-07-28 20:32:00 120

原创 2018-07-01

前段时间,高中的一个同学A找我帮忙弄一个 android 的大作业,没多想就答应了,虽然自己有很多东西都忘了,拾起来有点麻烦。想想高中都过去三年了,像毕业时预期的一样,很多同学,毕业了,这辈子就再也见不到了。很多同学依稀记得模样,却怎么也想不起来名字。寒假的时候和我们组几个同学聚了下,有几个已经三年没见了,再见面也没找到当初的那种感觉,一起聊天的话题都少了很多。有天晚上和A聊了一会儿,聊到...

2018-07-01 13:39:00 119

原创 复杂对象调用执行顺序

class Meal { Meal() { System.out.println("Meal()"); // 5 }}class Lunch extends Meal { private static Demo4 demo4 = new Demo4(); //1 private Demo demo = new Demo(); // 6...

2018-06-18 10:00:00 145

原创 多态适用性

多态只适用于普通方法,不适用于 private / final 修饰的方法(因为这类方法不能被子类重写),也不适用于域(成员变量) 或静态方法1. 多态不适用于域(成员变量)public class FieldAccess { public static void main(String[] args) { Super sup = new Sub(); ...

2018-06-18 08:57:00 323

原创 2018-06-05

过几天就要高考,三年前考完英语后,在无中门口等待考场开门的场景历历在目...刚看到这篇关于抖音的文章点击链接,想起表弟马上要参加中考,想随便扯点...表弟他们这一代(00后)受到的诱惑比我们上学时候多太多了,移动互联网的兴起,算法和人性的结合,各种深谙人性的短视频app、手游,对于正处于青春期的他们,都是难以抵制的诱惑。 哪怕对已经成年的我们,很多人也招架不住这些 app 给我们带来的视觉的刺...

2018-06-05 22:19:00 345

原创 快速排序

pivot 选择数组第一个元素 /** * 以第一个元素作为基准 * 不稳定 * @param arr * @param startIndex * @param endIndex */ public static void quickSort(int[] arr, int startIndex, int endInde...

2018-05-14 16:46:00 101

原创

应用:排序,从小到大用最大堆,从大到小用最小堆 选出元素中的 top k 个 top k 个最小数:数组前k个元素建大顶堆,后面的元素依次和堆顶比较,比其小则替换,重新调整建堆 top k 个最大数: 数组前 k 个元素建小顶堆package sort.heap;import java.util.Arrays;import java.util.Random;import ja...

2018-05-14 09:31:00 108

原创 单例模式遇上多线程

1. 饿汉模式——立即加载public class MySingleObj { private static MySingleObj mySingleObj = new MySingleObj(); public static MySingleObj getInstance() { return mySingleObj; } // 将构造函数...

2018-05-12 09:57:00 190

原创 可重入读写锁 ReentrantReadWriteLock

读写锁分为读锁和写锁,多个线程获取读锁不互斥,读写锁、写写锁互斥。package readwrite;import java.util.concurrent.locks.ReentrantLock;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * Created by lenovo on 2018/5/...

2018-05-11 19:53:00 106

原创 生产者消费者模式

1. Object 类作为锁,缓存队列>1package lock91_reentrant_procon;import java.io.ObjectInputStream;/** * Created by lenovo on 2018/5/11. */public class CommonService { private Product[] buffer; ...

2018-05-11 18:54:00 128

原创 可重入锁 ReentranLock 和 Condition

ReentrantLock 可重用锁1. 同一个线程未释放锁之前获取同一把锁一个线程在获取了锁之后,再次去获取了同一个锁,这时候仅仅是把使用计数 +1package lock9_method.holdCount;import java.util.concurrent.locks.ReentrantLock;/** * Created by lenovo on 2018/5/...

2018-05-11 18:48:00 393

原创 序列化和反序列化

序列化:将堆内存中的Java对象,转换成字节序列,使其支持持久化存储(存储到磁盘)和网络传输反序列化:将字节序列恢复成成Java 对象(需要Java 对象的 .class文件)1. 实现 Serializable 接口要想实现序列化,必须实现 Serializable接口public class Student implements Serializable { pri...

2018-05-10 21:26:00 161

原创 牛客网习题

有一个小白程序员,写了一个只能对5个数字进行排序的函数。现在有25个不重复的数字,请问小白同学最少调几次该函数,可以找出其中最大的三个数?25个数 分成 5 组 A/B/C/D/E,分别排序,5 次。 每组选出其中最大的数,排序,1次,假设最大的三个数为 A[0]>B[0]>E[0]得到的信息:A[0]已经确定是最大值了 C[0]/D[0] < A[0]/B[0]/C...

2018-04-30 20:26:00 757

原创 为什么不要用 StringBuffer 和 Vector

原文链接很多人在回答新手提问的时候会说,StringBuilder 是非同步的,所以快一些,StringBuffer是同步(线程安全)的,所以慢一些。从技术上说这句话是没有错的,但是为什么多线程的时候仍然用 StringBuilder,不建议用StringBuffer(StringBuffer 建议永远不要使用)?简单的说,StringBuffer的“线程安全”在大多数时候增加了大量不...

2018-04-25 23:00:00 304

原创 装饰者模式

原文链接装饰器模式 允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰者可以在所委托被装饰者的行为之前或之后加上自己的行为,以达到特定的目的。image.png装饰器模式由组件和装饰者组成。抽象组件(Component):需要装饰的抽象对象。具体组件(ConcreteComponent):是我们需要装饰的对象抽象装饰类(Decorator):内含指向抽象组件的引...

2018-04-25 13:34:00 83

Intellij Idea 一键打补丁插件

Intellij Idea 一键打补丁插件, 将本地文件替换到 远程服务器指定目录下

2018-08-08

OPENSTACK开源云王者归来:云计算、虚拟化、NOVA、SWIFT、QUANTUM与HADOOP.pdf

OPENSTACK开源云王者归来:云计算、虚拟化、NOVA、SWIFT、QUANTUM与HADOOP 带书签

2018-08-06

深入理解Java 虚拟机 原代码

深入理解Java 虚拟机 第二版 原代码 , txt 格式,非java 文件

2018-08-05

深入理解Java 虚拟机 第二版 pdf 带书签

深入理解Java 虚拟机 第二版 pdf 带书签,JVM 经典书籍

2018-08-05

空空如也

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

TA关注的人

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