自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(166)
  • 资源 (2)
  • 收藏
  • 关注

原创 git常用命令(持续更新)

1、回退工作区中文件部分代码 git checkout -p2、stash部分代码 git stash -p git reset --hard git stash pop 或者: git stash -p git stash drop3、查看最近的结点操作,即使已经被reset掉 git reflog 配合git reset --ha

2017-11-13 19:42:49 630

原创 Populating Next Right Pointers in Each Node

Given a binary treestruct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; }Populate each next pointer to point to its next right node. If there is no

2017-11-05 11:24:01 554

原创 Valid Square

题目描述:Given the coordinates of four points in 2D space, return whether the four points could construct a square.The coordinate (x,y) of a point is represented by an integer array with two integers.Exam

2017-11-01 13:03:58 1458

原创 Minimum Moves to Equal Array Elements II

题目描述:Given a non-empty integer array, find the minimum number of moves required to make all array elements equal, where a move is incrementing a selected element by 1 or decrementing a selected elemen

2017-10-30 15:40:39 472

原创 Maximum Product of Word Lengths

题目描述:Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case

2017-10-30 15:33:07 488

原创 Two Sum IV - Input is a BST

题目描述:Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target.Example 1:Input: 5 / \ 3 6 / \ \

2017-10-30 15:26:16 369

原创 Minimum Depth of Binary Tree

题目描述:Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.分析:题目让求的是从根节点到叶子节点的最"矮"树高度,可采用递归。递归计算

2017-10-30 15:21:29 328

原创 Subsets

题目描述:Given a set of distinct integers, nums, return all possible subsets (the power set).Note: The solution set must not contain duplicate subsets.For example,If nums = [1,2,3], a solution is:[ [3],

2017-10-30 15:16:37 1260

原创 职责链模式(Chain of Responsibility Pattern)

所有一切链式的、分步完成的、"传递性"的都可以想到用职责链模式。其实现方式的关键类似于链表的结构。职责链由一些职责结点组成,每个结点能够将任务传递给下一个结点。最后每个结点都遍历且执行了该结点规定执行的任务。举个例子:类图:关键是RequestHandler的实现。代码:/** * * RequestHandler * */public abstract class RequestHa

2017-09-19 14:49:23 562

原创 模板方法模式(Template Method Pattern)

模板方法模式是定义一个算法的骨架,将算法的实现延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。在这个例子中,算法骨架是StealingMethod,然后定义了两个算法的具体实现类:SubtleMethod和HitAndRunMethod。算法调用者为Halfling Thief,调用者只关心StealingMethod,而具体的算法实现由具体的场景来具体指定。类

2017-09-18 14:32:46 788

原创 读者容错模式(Tolerant Reader Pattern)

读者容错模式是当从一个数据模型中读取数据的时候,无论这个数据模型如何变换,尽最大可能读取自己需要的数据,达到读取数据健壮性的要求。例如我们有一个数据模型类:RainbowFish,表示一种鱼。有一个读写数据的类:RainbowFishSerializer,来获取RainbowFish的name、age、lengthMeters、weightTons等数据。但是RainbowFish是第三方提供,可

2017-09-15 17:37:04 1300

原创 Flux Pattern

Flux是Facebook提出的一种新的架构模式。一个Flux架构一般分为4个部分:View:视图层(界面)Action:视图层发出的消息或事件,如点击按钮Dispatcher:派发器,用来接受Actions、执行回调函数Store:数据层,用来存放应用状态,一旦发生变动,就要通知Views更新界面执行流程 用户操作(访问)ViewView发出用户的Action给DispatcherDispatc

2017-09-13 19:32:23 1389

原创 转换器(Converter)模式

在日常编码中,我们会遇到这样一个场景:把一个类型的对象转换成另一个对象,而这两者之前的转换强调的是"值(Value)"的等价转换,两者之间并没有继承与被继承的关系,也并不是像浮点数转整数这种语法意义上的转换关系。如下面举的这个例子:"用户"这个对象定义了User和UserDto两种Bean class来表示,二者所代表的"值"都是一致的,只是一个是业务逻辑层面的,一个是数据访问层面的。二者之前常常

2017-09-08 16:28:20 2211 1

原创 事件分发(EventDispatcher)模式

该模式实际上是监听模式的一种扩展。由事件(Event)驱动,每当有事件产生的时候,由事件分发器分发给特定的事件处理器处理该事件。类图:核心类:EventDispatcher——事件分发中心,每个来的事件都由该类分发到特定的处理者                Event——事件接口,不同的事件类型都要实现该接口                Handler——处理器接口,不同的处理器都要实现改接口

2017-09-01 17:35:12 9532

原创 execute around 模式

在写代码的时候,常常会遇到这样的情况:每次在执行一段代码的时候,都需要先执行一些代码;执行完之后,再执行另一些代码。比如在读写文件的时候,我们真正care的逻辑是"读写",至于文件流的初始化、打开、关闭、异常处理等都不是我们关心的。但是,每次在"读写"之前,我们需要执行打开操作,"读写"之后,需要执行关闭操作。这个时候就可以使用"execute around 模式"来提炼出"读写"前后的公共代码,

2017-09-01 16:24:39 698

原创 Null Object 模式

有时候,我们可以定义一个"空对象"来代替null,这样可以更加优雅的处理对象为null的情况,避免空指针异常。例如定义二叉树结点的时候,可以用一个NullNode结点来定义空结点。那么一个叶子结点的左子树和右子树就都可以指向NullNode,从而避免了可能引起空指针异常的null。类图:代码:/** * * Interface for binary tree node. * */pub

2017-08-30 20:44:13 829

原创 值对象(Value Object)模式

针对一些数据对象,我们更强调的是这个对象的值而不是这个对象本身的时候,就可以使用值对象模式。意思就是两个对象判定相等的时候应该是两个对象的"值"相等,而不是它俩必须是同一个对象。在编写值对象模式的时候,应该注意以下几点(以java为例):1、必须重写equals()、hashCode(),且重写的原则是两个对象的"值"相等的化,equal()和hashCode()必然相等。2、值对象一般不可修改,

2017-08-30 14:36:25 6271

原创 对象池(Object Pool)模式

对象池模式适用于当对象的创建代价比较高又需要频繁创建的时候。对象池模式会创建一批对象缓存起来待用。当需要对象的时候就从缓存池中获取,不需要的时候就放回缓存池中。当缓存池中对象不够用的时候又会创建新的对象放到缓存池中。类图如下:代码如下:/** * * Oliphaunts are expensive to create * */public class Oliphaunt { p

2017-08-30 12:57:40 1175

原创 二分查找及其拓展

二分查找,也叫"折半查找",是一个很常见的算法。其原理思想或多或少都了解。我还记得上大学的时候讲数据结构的老师说过:使用二分查找的一个重要的先决条件是被查找的数组必须是有序的。这句话放到当时的语境来讲是正确的。但是,随着工作中逐渐遇到各种各样的查找算法,到头来发现都是二分查找的思想,有些数组不一定就有序,有些也有可能都不是单纯的数组。但是都可以从中提炼出二分查找的思想来。因此,我觉得有必要归纳总结

2017-08-16 11:29:55 1290

原创 常见的代码托管平台

gitlab ( inner-source )https://gitlab.com/gitlab-org/gitlab-cehttp://gitlab.baidu.com/github ( open-source, social coding )https://github.com/Bitbuckethttps://bitbucket.org/phabricatorhttp://pha.zz.ba

2017-08-09 17:12:48 2717

原创 Freeline - Android平台上的秒级编译方案

Freeline是什么?Freeline是蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部开源,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发dx,并发merge dex等策略,在多核机器上有明显加速效果,另外在class

2017-07-25 14:20:42 478

原创 Android SDK Version简介

我们在android工程中经常会遇见如下几个SDK Version——minSdkVersion、targetSdkVersion和maxSdkVersion。根据名字看是显而易见的含义,但是往往越显而易见,越不会被重视。知道个似是而非,大概意思就差不多。因此,我觉得有必要记下一笔,讲讲这几个属性在android里到底是什么意思。minSdkVersion指的是当前APP可以安装的系统最低版本。如

2016-12-28 16:09:32 1624

原创 相似性度量

一、余弦相似度一个物品可以由一系列特征描述,这些特征构成了一个特征向量。余弦相似度就是通过两个特征向量的夹角来度量两个物品的相似程度。夹角范围是[0,π];当夹角∈[0,π/2),二者正相关,越小,正相关越厉害;当夹角=π/2,二者不相关;当夹角∈(π/2,π],二者负相关,且越大,负相关越厉害。计算公式:a = (x1,x2,…….xn),b=(y1,y2,……yn)一、皮尔逊积矩相关系数计算公

2016-12-09 12:24:52 980

原创 畅想未来

这三点,是我觉得未来应该成为的样子~一、一切皆数据数字是一个很神奇的东西,一切的物品、行为都可以被数据描述。比如一个物品我们可能会用长宽高、颜色、重量等可以反映物品属性的特征来记录。未来的一切东西都会可以被数据所描述,存储和传递。一个人,他的健康指数,如心跳,血压,年龄;他的消费习惯,如某个商品的浏览次数,购买记录;他在网上的浏览记录,他的聊天数据,他银行卡的消费水平,存款记录等等。围绕着这个人的

2016-12-08 16:44:42 727

原创 深入分析Android监听网络变化的坑

Android开发的同学都知道,在很多场景下我们需要监听网络变化,从而做一些业务逻辑比如刷新数据。于是我们会找到这样一个广播:ConnectivityManager.CONNECTIVITY_ACTION,注册一个BroadcastReceiver,添加一个ConnectivityManager.CONNECTIVITY_ACTION,就可以监听网络变化了。再看看这个action的注释:A cha

2016-12-07 20:36:45 5111 1

原创 AsyncLayoutInflater的简单介绍和源码分析

简介我们知道setContentView()、layoutinflater.inflate()等传统的布局加载方式都是在UI线程中同步加载布局的。当layout.xml过于复杂繁重,加载就会造成UI卡顿甚至ANR。在Google最近发布的Supportv4包中,给我们提供了一个异步加载布局的帮助类:AsyncLayoutInflater。这个类可以帮助你在非UI线程中加载layout,然后将加载好

2016-10-10 19:55:36 6725

原创 看到一张比较好的关于特征工程的图

2016-08-24 12:28:35 649

转载 卡方检验原理及应用

原文链接:https://segmentfault.com/a/1190000003719712卡方检验反应的是理论值与实际值之间的差异性。卡方值越大,表示理论与实际的差异越大

2016-08-24 11:54:56 3006

原创 如何做好机器学习——个人感悟

最近一直在研究机器学习的相关内容,也在kaggle上看了不少前辈的解答思路。作为一个刚入门的小生来说,进步的空间还很大。但是我觉得有必要把我自己对机器学习的看法和认识记录一下,不论对错。机器学习实际上就是一门与数据打交道的学科,数据在里面体现了非常重要的角色。如果要我一句话说明什么是机器学习的话,我觉得是“通过一直的数据和结论,训练一种模型出来,并根据新的数据来预测结论”。那么,如何做好机器学

2016-08-21 16:59:14 1130

转载 如何在 Kaggle 首战中进入前 10%

原文请见:https://dnc1994.com/2016/04/rank-10-percent-in-first-kaggle-competition/

2016-08-20 23:00:24 1689

转载 巧用接口解耦分离实现

架构对于很多初学者来讲往往都是唯恐不及的,总感觉架构对自己而言太过遥远,实际上架构对大家来说并不陌生,甚至你每天都在与之打交道,只是你习以为常没有留意而已。生活中处处是架构设计的影子,只不过在日常生活中我们不称之为架构罢了。记得在一年多以前爱哥在公司楼下的食堂发现一个有趣的现象,楼下食堂打饭是这样的,你得先去食堂售票处那够买饭票,然后拿着这张饭票排队点餐,点餐的过程是这样的,先会有一个大叔问你吃什

2016-08-18 15:04:08 3725

转载 NumPy的详细教程

原文请见:http://blog.csdn.net/lsjseu/article/details/20359201?utm_source=tuicool&utm_medium=referral

2016-08-17 14:43:36 465

原创 数据挖掘比赛通用步骤

中文版:http://mp.weixin.qq.com/s?__biz=MzI3NTA0MzM1OQ==&mid=2651615325&idx=1&sn=d16a1f8ba5d4164606efc3a0fa416be2&scene=23&srcid=08139bhv2hyZYhdFZi1UBy6N#rd英文版:http://blog.kaggle.com/2016/07/21/approach

2016-08-13 19:44:55 1953

转载 基于sklearn 的one hot encoding

1.one hot编码的由来在实际的应用场景中,有非常多的特征不是连续的数值变量,而是某一些离散的类别。比如在广告系统中,用户的性别,用户的地址,用户的兴趣爱好等等一系列特征,都是一些分类值。这些特征一般都无法直接应用在需要进行数值型计算的算法里,比如CTR预估中最常用的LR。那针对这种情况最简单的处理方式是将不同的类别映射为一个整数,比如男性是0号特征,女性为1号特征。这种方式最大的优点

2016-08-13 12:21:15 4800 1

转载 朴素贝叶斯分类算法

http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html

2016-07-05 17:43:38 519

转载 K-Means 算法

http://coolshell.cn/articles/7779.html

2016-07-05 17:41:22 510

转载 K Nearest Neighbor 算法

K Nearest Neighbor算法又叫KNN算法,这个算法是机器学习里面一个比较经典的算法, 总体来说KNN算法是相对比较容易理解的算法。其中的K表示最接近自己的K个数据样本。KNN算法和K-Means算法不同的是,K-Means算法用来聚类,用来判断哪些东西是一个比较相近的类型,而KNN算法是用来做归类的,也就是说,有一个样本空间里的样本分成很几个类型,然后,给定一个待分类的数据,通过计算

2016-07-05 16:34:12 766

转载 理解Python的With语句

Python’s with statement provides a very convenient way of dealing with the situation where you have to do a setup and teardown to make something happen. A very good example for this is the situation

2016-05-03 16:52:57 549

转载 jvm参数设置 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M

-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M  这里有几个问题:  1. 各个参数的含义什么?  2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?  3. 为何将上面的参数写入到eclipse.ini文件Eclip

2016-04-07 10:05:36 4035

原创 Android面试回忆录

最近打算换工作了,面试了百度作业帮、今日头条、阿里、网易和小米的工作。然后把面试的题目写下来,给找工作的同学一些指导。首先,我面试的是Android高级岗,不过一些基础的知识应该是所有层次的同学都应掌握的。其次,问到的项目相关的问题不在这里和大家分享,因为这不是通用的。但是不代表你的项目就在面试中不重要,相反,你做过的项目和你的经历都在很大程度上决定了你的通过率。下面我就把我能想到的题目分享给

2016-03-31 11:54:46 3955 2

RxJava Essentials 中文版

一本适合RxJava基础入门的中文翻译书。由Ivan.Morgillo 所写

2016-01-07

RxJava Essentials

适合RxJava入门的书籍(英文版),由Ivan.Morgillo所写。其中文版目前被翻译出来了。

2016-01-07

空空如也

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

TA关注的人

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