`
文章列表
设计算法,求 x 的 n 次幂:pow(x, n) 算法一 public class Solution { /* * Solution 1: Time Limit Exceeded * * Test Case: * x = 0.00001 * n = 2147483647 */ public double myPow(double x, int n) { if(x == 0) return 0; if(n == 0) r ...
Algorithm之排序之堆排序(Heap Sort) 一、什么是堆 在讲述堆之前,首先看一下二叉树。 二叉树: 每个节点最多有两个子节点,且这两个子节点有左右次序之分。 1、满二叉树 二叉树的所有非叶子节点都被填满。 因此:一颗深 ...
Algorithm之排序之归并排序 一、归并介绍 动画1: 动画2: 归并排序(英语:Merge sort,或 mergesort), 是创建在归并操作上的一种有效的排序算法,效率为O(n log n)。 1945年由约翰·冯·诺伊曼首次提出。 该算法是采用分治法(Divide and Conquer)的一个非常典型的应用, 且各层分治递归可以同时进行。 时间复杂度      O(n log n) 时间复杂度最优  O(n) 时间复杂度平均  O(n log n) 空间复杂度      O(n) 执行过程: 通过动画可以看出,归并排序的执行过程是:先分再排。 ——先将最 ...
// Pattern. /* digits : \d = [0-9] words : \w = [A-Za-z0-9_] space characters : \s = [ \t\r\n\v\f] boundaries : \b = (?<=\W)(?=\w)|(?<=\w)(?=\W) ___________________________________________________________ ...
动态规划(DP: Dynamic Programming) 一、基本思想与策略 基本思想与分治法类似,也是将待求解的问题     - 分解为若干个子问题(阶段)     - 按顺序求解子问题,     - 前一个(或前有限个,一般不超过三个)子问题的解,为后一子问题的求解提供了有用的信息。     - 在求解子问题时,需要求得各种可能的解。这些解是累计关系,是当前子问题的最终解。     - 依次解决各子问题,最后一个子问题的解就是初始问题的解。 动态规划的子问题是可以用来判定结果的最短子问题,或是前后两个,或是前后三个,总之是有限个。 由于动态规划解决的问题多数有重叠子问题这个特点,为减 ...
copy books Before the invention of book-printing, it was very hard to make a copy of a book. All the contents had to be re-written by hand by so called scribers. The scriber had been given a book and after several months he finished its copy. One of the most famous scribers lived in the 15th century ...
一、问题背景 HTTP 协议是单向协议。 二、实现服务器端向客户端进行消息推送 http://www.cnblogs.com/best/p/5695570.html 三、WebSocket机制 WebSocket 是 HTML5 一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯,它建立在 TCP 之上,同 HTTP 一样通过 TCP 来传输数据,但是它和 HTTP 最大不同是: WebSocket 是一种双向通信协议,在建立连接后,WebSocket 服务器和 Browser/Client Agent 都能主动的向对方发送或接收数据, ...
TCP 创建连接中三次握手都做了那些事? 第一次: 客户端:在吗? 服务端:在。 第二次: 客户端:可用吗? 服务端:可用。你确定要用吗? 第三次: 客户端:是。我们开始吧。 服务端:好。 链接创建成功。开始通信。 —————————————————————————————————————— 但是为什么一定要进行三次握手来保证连接是双工的呢,一次不行么?两次不行么? 我们举一个现实生活中两个人进行语言沟通的例子来模拟三次握手。 第一次对话: 老婆让甲出去打酱油,半路碰到一个朋友乙,甲问了一句:哥们你吃饭了么? 结果乙带着耳机听歌呢,根本没听到,没反应。甲心里想:跟你说话也 ...
Java 内存模型之堆内存(Heap) 一、背景知识:内存类型介绍 1、什么是 Perm Gen? Perm Gen : Permanent Generation Perm Gen 区是一个特殊的JVM内存区,因为它用来存储用来描述 Class 的 元数据(Class 可以不属于Java语言的一部分,也可 ...
Java之多线程之Callable与Future 从 Java 5 开始出现了 java.util.concurrent 包,该包在多线程环境中应用广泛。 一、 java.util.concurrent.Callable Callable 接口 与 Runnable 接口类似,不同的是它们的唯一的 run 方法: 1、Callable 有返回值,Runnable 没有。    Callable 的 run() 方法使用了 泛型类,可以返回任意类型的值。 2、Callable 抛出异常 ,Runnable 没有抛出。 同时 java.util.concurrent.Executors ...
Java之设计模式之Singleton Java Singleton 单例设计模式属于四大设计模式之生产设计模式的一种。 该设计模式看似简单,但是涉及到许多注意点。 一、Java Singleton 简介 Java Singleton 单例设计只允许在JVM中产生类的一个实例对象。 因此这样的类不能提供对外的构造方法产生实例,而是提供一个 public 方法, 返回(指向)某个实例的引用。 Java Singleton 单例设计常用于: 1、Logging(日志) 2、Driver(驱动) 3、Caching(缓存) 4、Thread Pool(线程池) 5、Abstract Facto ...
Java之多线程之Lock 接上文 在多线程环境中,大部分情况下,使用 synchronized 关键字可以满足需求。 但是其也存在不足。于是 java.util.concurrent.locks 包出现了。 第一篇 背景 在Java中实现线程同步的传统方法是使用synchronized关键 ...
Java之线程同步与安全(Thread Synchronize & Safe) 一、问题背景 Java语言提供了多线程的功能。 多线程创建于相同的Object,多线程间共享Object的变量或属性。 但是,当线程对共享的数据进行读写时,会导致数据的不一致(data inconsistency)。 二、线程同步情景分析 数据不一致的原因是由数据操作的非原子性引起的。 即:更新任何属性或变量,非一步完成,而是需要三部:     1、读取现在的值。     2、进行必要的操作以得到要更新的值。     3、把更新的值写入到引用的变量或属性中。     来看一个简单的例子: 多个线 ...

网站页面配色

    博客分类:
  • css
导航栏,菜单栏 左侧菜单 导航,底部,选择列表 页面背景_日期文字颜色 -
前文讲到“属性继承”所存在的问题:重复。本文专注于“原型(prototype)继承”。 背景知识:什么是函数的 prototype 属性? 函数在定义(创建)时,会自动被添加一个 prototype 属性。   1、prototype 属性是一个空对象 {},然后被 ...
Global site tag (gtag.js) - Google Analytics