自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

往者不可谏,来者犹可追

答案在风中飘摇

  • 博客(44)
  • 收藏
  • 关注

转载 人类如何思考

一、人类有好奇心但不是天生的思考者大脑不是设计来思考的,而是设计为避免思考。多数时候,我们是根据经验、记忆来做解决问题或做决定。但这并不是说我们完全避免思考,我们也追求可以自行解决问题,因为这会让我们感到愉悦。前提是这个,问题不是那么难以解决,并且在我们决定要解决它之前,能稍微看到成功的曙光这也解释了为何我们要把一个项目/想法/问题细分成一系列的步骤,这样每一个步骤都不至于太难,都有成功解决的希望

2017-08-12 19:53:01 4617

原创 NP难问题与过拟合

NP问题一直都是信息学的巅峰。巅峰,意即很引人注目但难以解决。在信息学研究中,这是一个耗费了很多时间和精力也没有解决的终极问题,好比物理学中的大统一和数学中的歌德巴赫猜想等。以下引用于:什么是P问题、NP问题和NPC问题P类问题的概念:如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。NP问题是指可以在多项式的时间里验证一个解的问题。很显然,Hamilton回路是N

2017-08-01 23:51:55 2420

原创 LFU缓存策略

Example:LFUCache cache = new LFUCache( 2 /* capacity */ );cache.put(1, 1);cache.put(2, 2);cache.get(1); // returns 1cache.put(3, 3); // evicts key 2cache.get(2); // returns -1 (

2017-08-30 21:17:05 817

原创 LRU缓存策略

问题描述:为最近最少使用(LRU)缓存策略设计一个数据结构,它应该支持以下操作:获取数据(get)和写入数据(set)。获取数据get(key):如果缓存中存在key,则获取其数据值(通常是正数),否则返回-1。写入数据set(key, value):如果key还没有在缓存中,则写入其数据值。当缓存达到上限,它应该在写入新数据之前删除最近最少使用的数据用来腾出空闲位置。

2017-08-29 19:48:35 506

转载 LSM Tree

我们在访问数据的时候速度肯定是内存大于磁盘的,这样的话为什么不全用内存呢?原因大家自己考虑下就行了,所以权衡下来还是需要用硬盘的,那么为了实现数据的快速插入和查询,存储应该怎么设计呢?学过oracle的同学都应该知道,要使一个表对查询的响应比较快,那么最主要的手段就是索引,但是索引多了就会影响数据插入的速度,这也是一种平衡,下面我们将分析lsm,看看它是设计了个完美的解决方案吗?在讨论这个

2017-08-28 18:27:56 2482

转载 编程题——攀爬字符串

给定一个字符串 S1,将其递归地分割成两个非空子字符串,从而将其表示为二叉树。下面是s1 = "great"的一个可能表达: great / \ gr eat / \ / \g r e at / \ a t在攀爬字符串的过程中,我们可以选择其中任意一个非叶节点,然后交换该节点的两个

2017-08-28 17:23:35 308

原创 动态规划——吹气球

问题描述有n个气球,编号为0到n-1,每个气球都有一个分数,存在nums数组中。每次吹气球i可以得到的分数为 nums[left] * nums[i] * nums[right],left和right分别表示i气球相邻的两个气球。当i气球被吹爆后,其左右两气球即为相邻。要求吹爆所有气球,得到最多的分数。样例给出 [4, 1, 5, 10]返回 270nu

2017-08-28 13:17:49 1487

转载 Deep Learning(深度学习)神经网络如何识别

一、基本变换:层 一般的神经网络是由一层一层堆叠而成的,但是每层究竟在做啥呢? 我从三个方面述说一下:数学公式Y = a ( W * X + b )         其中Y是输出量,X是输入量,a()是一个激活函数,W是权重矩阵,b是偏置向量。每一层都是通过该公式简单的得到输出Y。数学理解 通过如下5种对输入空间(输入向量的集合)的操作,完成

2017-08-27 16:05:44 4503

转载 你应该知道的 RPC 原理

1 如何调用他人的远程服务?由于各服务部署在不同机器,服务间的调用免不了网络通信过程,服务消费方每调用一个服务都要写一坨网络通信相关的代码,不仅复杂而且极易出错。如果有一种方式能让我们像调用本地服务一样调用远程服务,而让调用者对网络通信这些细节透明,那么将大大提高生产力。要让网络通信细节对使用者透明,我们自然需要对通信细节进行封装,我们先看下一个RPC调用的流程:

2017-08-27 11:41:06 291

转载 购物车实现原理

购物车相当于现实中超市的购物车,不同的是一个是实体车,一个是虚拟车而已。用户可以在购物网站的不同页面之间跳转,以选购自己喜爱的商品,点击购买时,该商品就自动保存到你的购物车中,重复选购后,最后将选中的所有商品放在购物车中统一到付款台结账,这也是尽量让客户体验到现实生活中购物的感觉。服务器通过追踪每个用户的行动,以保证在结账时每件商品都物有其主。     购物车的功能包括以下几项:n    

2017-08-27 10:43:36 1499

转载 Hadoop NameNode 高可用 (High Availability) 实现解析

NameNode 高可用整体架构概述在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode 的单点问题尤为严重。因为 NameNode 保存了整个 HDFS 的元数据信息,一旦 NameNode 挂掉,整个 HDFS 就无法访问,同时 Hadoop 生态系统中依赖于 HDFS 的各个组

2017-08-23 10:44:27 418

原创 Hive基本操作(三)

InsertInserting data into table from queriesStandard syntax:INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 FROM from_statement Hive extension

2017-08-22 23:16:41 595

转载 TCP流量控制与拥塞控制

TCP流量控制如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。从图中可以看出,B进行了三次流量控制。第一次把窗口减少到 rwnd = 300 ,第二次又减到了 rwnd = 100 ,最后减到 rwnd = 0 ,

2017-08-20 14:48:03 1929

转载 线段树(二)

Question:给你N个数,有两种操作:1:给区间[a,b]的所有数增加X2:询问区间[a,b]的数的和。输入描述:第一行一个正整数n,接下来n行n个整数,再接下来一个正整数Q,每行表示操作的个数,如果第一数是1,后接3个正整数,表示在区间[a,b]内每个数增加X,如果是2,表示操作2询问区间[a,b]的和是多少。输入样例:55 4 3 2 12

2017-08-20 12:57:53 232

转载 线段树(一)

首先提出一个问题: 给你n个数,有两种操作:1:给第i个数的值增加X2:询问区间[a,b]的总和是什么?输入描述输入文件第一行为一个整数n,接下来是n行n个整数,表示格子中原来的整数。接下一个正整数q,再接下来有q行,表示q个询问,第一个整数表示询问代号,询问代号1表示增加,后面的两个数x和A表示给位置X上的数值增加A,询问代号2表示

2017-08-20 12:24:19 276

转载 TCP连接的建立与终止

1.三次握手TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。第一次握手: 建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SE

2017-08-20 10:27:26 311

转载 一致性哈希算法

一致哈希 是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对K/n个关键字重新映射,其中K是关键字的数量,n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。分布式缓存问题一个网站随着流量增加,服务器压力越来越大,之前直接读写数据库的方式遭遇I/O和连接数的瓶颈,于是我们引入Memcached作为缓存服务器减轻DB压力。

2017-08-19 14:42:21 412

原创 Hive基本操作(二)

Alter Table1 Add  PartitionsALTER TABLE table_name ADD [IF NOT EXISTS] partition_spec [ LOCATION 'location1' ] partition_spec [ LOCATION 'location2' ] ...partition_spec: : PARTITION (partition

2017-08-19 10:35:38 368

原创 编程题——和为sum的方法数

题目描述给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。输入描述:输入为两行:第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000)第二行为n个正整数A[i](32位整数),以空格隔开。输出描述:输出所求的方案数

2017-08-19 01:53:22 4130

原创 编程题——地下迷宫

题目描述小青蛙有一天不小心落入了一个地下迷宫,小青蛙希望用自己仅剩的体力值P跳出这个地下迷宫。为了让问题简单,假设这是一个n*m的格子迷宫,迷宫每个位置为0或者1,0代表这个位置有障碍物,小青蛙达到不了这个位置;1代表小青蛙可以达到的位置。小青蛙初始在(0,0)位置,地下迷宫的出口在(0,m-1)(保证这两个位置都是1,并且保证一定有起点到终点可达的路径),小青蛙在迷宫中水平移动一个单位距

2017-08-18 15:15:43 1511

原创 子网掩码

IP地址IP默认分配的子网掩码每段只有255或0A类的默认子网掩码 255.0.0.0 一个子网最多可以容纳1677万多台电脑B类的默认子网掩码 255.255.0.0 一个子网最多可以容纳6万台电脑C类的默认子网掩码 255.255.255.0 一个子网最多可以容纳254台电脑要想在同一网段,只要网络标识相同就可以了,那要怎么看网络标识呢?首先要做的是

2017-08-18 11:53:53 459

转载 ST(稀疏表)算法

作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例举例:给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1。方法:ST算法分成两部分:离线预处理 (nlogn)和 在线查询(O(1))。虽然还可以使用线段树、树状链表等求解区间最值,但是ST算法要比它们更快,而且适用于在线查询。(1)离线预处理:运用DP思想,用于求解区间最值,并保

2017-08-18 09:07:25 1986 2

原创 Hive基本操作(一)

create table 1、1总述  CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXIST 选项来忽略这个异常。  EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION),Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录

2017-08-17 19:54:56 485

原创 最小生成树

问题描述给出一些Connections,即Connections类,找到一些能够将所有城市都连接起来并且花费最小的边。如果说可以将所有城市都连接起来,则返回这个连接方法;不然的话返回一个空列表。 注意事项返回cost最小的连接方法,如果cost相同就按照city1进行排序,如果city1也相同那么就按照city2进行排序。样例

2017-08-17 11:43:04 329

原创 Hive结构

HIVE结构 Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 QL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 red

2017-08-17 09:46:17 236

转载 Hbase适合场景

当我们对于数据结构字段不够确定或杂乱无章很难按一个概念去进行抽取的数据适合用使用什么数据库?答案是什么,如果我们使用的传统数据库,肯定留有多余的字段,10个不行,20个,但是这个严重影响了质量。并且如果面对大数据库,pt级别的数据,这种浪费更是严重的,那么我们该使用是什么数据库?hbase是个不错的选择,那么我们对于hbase还存在下列问题:1.Column Family代表什么?2.

2017-08-16 23:04:53 668

转载 Hbase原理、基本概念、基本架构

概述HBase是一个构建在HDFS上的分布式列存储系统;HBase是基于Google BigTable模型开发的,典型的key/value系统;HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储;从逻辑上讲,HBase将数据按照表、行和列进行存储。与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来

2017-08-16 22:16:43 225

原创 进程同步问题

读写者问题有读者和写者两组并发进程,共享一个文件,当两个或以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误。因此要求:①允许多个读者可以同时对文件执行读操作;②只允许一个写者往文件中写信息;③任一写者在完成写操作之前不允许其他读者或写者工作;④写者执行写操作前,应让已有的读者和写者全部退出。

2017-08-16 12:09:53 438

转载 计算机网络基础知识——(三)

一、网络层1.IP协议IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGMP的数据都以IP数据格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制,这被认为是上层协议:TCP或UDP要做的事情。1.1 IP地址在数据链路层中我们一般通过MAC地址来识别不同的节点,而在IP层我们也要有一个类似的地址标识,这就是IP地址。

2017-08-14 11:58:50 458

原创 大数据特征与作用

大数据的特征(4V+1O):数据量大(Volume)。第一个特征是数据量大,包括采集、存储和计算的量都非常大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。类型繁多(Variety)。第二个特征是种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出

2017-08-14 10:55:47 8805

转载 你不知道的关于计算机大师 Dijkstra 的事情

Dijkstra 的全名叫 Edsger Wybe Dijkstra(艾兹赫尔·韦伯·戴克斯特拉)。大部分中国程序员如果能记住这个名字是因为学过计算最短路径的「Dijkstra 算法」,然而大部分人都难以记住正确的拼写,因为他是荷兰人,名字不符合英语的发音规则。他是几位影响力最大的计算科学的奠基人之一,也是少数同时从工程和理论的角度塑造这个新学科的人。他 的根本性贡献覆盖了很多领域,包括:编译

2017-08-12 00:24:29 623

转载 RandomForest、GBDT和XGBOOST

传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。顺便提一下,xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导。xgboos

2017-08-10 21:57:55 583

原创 生产者-消费者问题

问题描述一组生产者进程和一组消费者进程共享一个初始为空、大小为n的缓冲区,只有缓冲区没满时,生产者才能把消息放入到缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。由于缓冲区是临界资源,它只允许一个生产者放入消息,或者一个消费者从中取出消息。问题分析1) 关系分析。生产者和消费者对缓冲区互斥访问是互斥关系,同时生产者和消费者又是一个相互协作的关系,只

2017-08-10 16:47:53 898

原创 进程的概念和特征

进程的概念在多道程序环境下,允许多个程序并发执行,此时它们将失去封闭性,并具有间断性及不可再现性的特征。为此引入了进程(Process)的概念,以便更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性。为了使参与并发执行的程序(含数据)能独立地运行,必须为之配置一个专门的数据结构,称为进程控制块(Process Control Block, PCB)。系统利用PCB来描述进程的

2017-08-10 00:09:38 1616

原创 带重复元素的全排列

问题描述给出一个具有重复数字的列表,找出列表所有不同的排列。样例给出列表 [1,2,2],不同的排列有:[ [1,2,2], [2,1,2], [2,2,1]]递归解法:利用回溯加递归的思想,每次将当前元素与待交换元素进行交换前,判断在当前元素到待交换元素之间是否存在元素与待交换元素相等。若存在,则跳过待交换元素;若不存在,则进

2017-08-09 14:55:31 1453

转载 Softmax回归

Softmax回归From UfldlJump to: navigation,searchContents1简介2代价函数3Softmax回归模型参数化的特点4权重衰减5Softmax回归与Logistic 回归的关系6Softmax 回归 vs. k 个二元分类器7中英文对照8中文译者简介

2017-08-08 23:59:38 585

转载 C++仿函数

先考虑一个简单的例子:假设有一个vector,你的任务是统计长度小于5的string的个数,如果使用count_if函数的话,你的代码可能长成这样:1 bool LengthIsLessThanFive(const string& str) {2 return str.length()5; 3 }4 int res=count_if(vec.begin(), vec.

2017-08-06 22:00:53 217

转载 const作用

一 const基础如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 500; const int* a = &b; [1] int const *a = &b; [2] int* const a = &b;

2017-08-06 21:44:14 204

原创 异或

问题给定整数m以及n各数字A1,A2,..An,将数列A中所有元素两两异或,共能得到n(n-1)/2个结果,请求出这些结果中大于m的有多少个。 输入描述:第一行包含两个整数n,m. 第二行给出n个整数A1,A2,…,An。数据范围对于30%的数据,1 <= n, m <= 1000对于100%的数据,1 <= n, m, Ai <= 10^5输出描述:输出仅包括一行,即所求的答案思路使用字典树(Tr

2017-08-05 20:12:02 2452 2

原创 MapReduce全局共享数据

由于继承Mapper基类的Map阶段类和继承Reducer基类的Reduce阶段类的运行都是独立的,并不像代码看起来那样会共享同一个Java虚拟机的资源,所以不能直接使用代码级别的全局变量。下面介绍几种在MapReduce编程中相对有效的设置全局变量的方法。1、读写HDFS文件在MapReduce框架中,Map task和Reduce task都运行在Hadoop集群的节点上,所以它们可以通过读写

2017-08-04 21:57:48 1843

空空如也

空空如也

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

TA关注的人

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