- 博客(93)
- 资源 (2)
- 收藏
- 关注
原创 flink学习之DataStream流处理Iterations
参考:1.https://ci.apache.org/projects/flink/flink-docs-release-1.13/zh/docs/dev/datastream/overview/2.
2021-06-17 14:09:50
609
1
原创 秋招面试经验(百度+华为+京东+美图+51+头条+招银科技+美团+腾讯+阿里+网易面试经验)&部分建议 (研发岗:java研发,大数据研发,研发,云计算研发)
18年9月底结束秋招, 本来说是要写秋招经验的。 结果被我拖到了现在, 今天是我在某BAT之一实习的倒数第二天,马上就要回去做毕设了,正在总结,正好得空。 本人某工科985硕,8月底参加秋招,9月底结束秋招, 之所以那么迟秋招只是因为当时在旅游,不想其他事分心,同时也是因为没准备好, 那么早结束秋招只因为实验室工作催得紧,秋招也实在疲惫。 秋招一共...
2018-02-26 15:55:16
4389
原创 hadoop3.0.0 源码阅读之一:IPC Client部分
之前一直在看Hadoop源代码,接下来打算好好的总结一下,先占一个坑,先把之前注释的代码发出来。如有不对,请大家指正。在Hadoop中,不同节点间使用RPC机制进行通信,但是它并没有使用RMI,而是自己实现了一套RPC(没用用java本身自带的序列化), 这个RPC大体来说分为两个部分,一个是Client端,一个是Server端。 底层数据的传输是用google的protobuf。RP
2017-10-12 10:03:26
1182
原创 Vim+ctags+cscope+Nerdtree+Taglist入门
介于linux下并没有什么像Source Insight这样优秀的内核源码阅读工具,只有一些模仿的都不伦不类,所以我用打造vim为一个合格的源码阅读器,看着贼爽。可能一下子看起来那么多东西可能怕怕的,但是可以一个一个来。Vim+ctags可以先用着,能够实现自动跳转。然后再一点一点加入其他的来完善。下面就是我的vim的效果图(实际上不难,别被吓到),左边是Taglist 右边是Nerdtr
2017-10-11 21:08:02
1835
原创 红黑树详解
红黑树 一.红黑树定义红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。除了具备该特性之外,红黑树还包括许多额外的信息。红黑树的每个节点上都有存储位表示节点的颜色,颜色是红(Red)或黑(Black)。红黑树的特性
2017-05-09 14:07:37
1547
原创 Paxos协议超级详细解释+简单实例
Basic-Paxos算法(可以先看后面的实际例子再看前面的具体介绍部分)Paxos算法的目的Paxos算法的目的是为了解决分布式环境下一致性的问题。 多个节点并发操纵数据,如何保证在读写过程中数据的一致性,并且解决方案要能适应分布式环境下的不可靠性(系统如何就一个值达到统一)Paxos的两个组件Proposer提议发起者,处理客户端请求,将客户端的请求发送到集群中,
2016-12-20 20:23:19
29312
14
原创 分布式CAP原理
Consistent data: Operations commit or fail in their entirety(atomic) 操作的提交或者失败都是整体的(原子性) Transactions never observe or result in inconsistent data(consistent) 事务不会导致不一致的数据
2016-12-17 21:36:22
663
转载 HashMap 详解
HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap的存取。一、定义 HashMap实现了Map接口,继
2016-11-25 17:17:00
346
原创 Mysql优化分析
Mysql层次结构: 1、Connectors指的是不同语言中与SQL的交互 2、Management Serveices & Utilities: 系统管理和控制工具 3、Connection Pool: 连接池 管理缓冲用户连接,线程处理等需要缓存的需求。 4、SQL Interface: SQL接口。接受用户的SQL命令,并且返回用户
2016-11-09 20:19:43
413
转载 进程与线程的超级简单形象解释
转载自:http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html这篇文章写的很生动,因此转载。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工
2016-11-07 21:30:28
338
原创 Zookeeper 客户端源码吐血总结
**目录 一、几个重要的类 2 二、JAVA的基础知识 2 三、大致了解 2 四 从入门到放弃的讲解 3 Code1:ZK 3 Code2:创建 Zookeeper实例,实例化ClientCnxn,实例化ClientCnxnSocketNIO 3 Code3:实例化ClientCnxnSocketNIO (which extends ClientCnxnSocket)
2016-11-04 21:34:11
12541
2
原创 Zookeeper选举算法( FastLeader选主)
FastLeader选主算法: 看网上关于 zookeeper选主节点fast算法的描述,虽然有几篇写的非常不错,但是总感觉描述的差一些,因此打算写一个我认为的较为详细的版本让大家提点意见。当然如果有Paxos基础那自然看起来非常很简单。 具体的FAST算法流程如下所示:下面详细解释一下这个流程:首先给出几个名词定义:(1)Server
2016-10-28 19:14:53
22337
1
原创 hadoop学习之:Map、Reduce详解
Hadoop学习重点主要为HDFS、MapReduce 部分:接下来重点描述一下MAP与Reduce 的过程。看了好多资料,如果有错误的地方请大家指出。MAP部分:下图是官方给予的关于MapReduce的步骤,实际上图已经很好的说明了MapReduce的过程。TaskTracker 接受到MAP任务,或者SPLIT, 一个SPLIT对应一个或者多个BLOCK。
2016-10-18 10:23:15
746
原创 Windows 通过 putty 连接 虚拟机下linux 问题
1、在linux 下配置好IP地址,使得 Windows能 ping 通LINUX。2、直接百度下载 putty 即可,小程序, 程序运行界面如下:3、输入LINUX的IP地址,即可连接到linux.问题:如果出现 connection refused说明linux上SSH安装出现问题。解决办法步骤1、查看linux openssh-server是
2016-09-29 17:33:06
829
原创 hdu 2072 截取字符操作
#include#include#include#include#includeusing namespace std;int main(){ string str; set q; char sss[1005]; while(gets(sss)){ str=sss; q.clear(); if(str=="#") break; int i; for(i=0;
2015-04-22 23:52:38
623
原创 sscanf的常见用法
例子: 1. 常见用法。 char buf[512] = ; sscanf("123456 ", "%s", buf); printf("%s\n", buf); 结果为:123456 2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。 sscanf("123456 ", "%4s", buf); printf("%s
2015-04-22 23:35:36
668
原创 KMP算法 hdu 1711 hdu 2203
mark一下,重新温习了 KMPKMP复杂度O(n+m)这里有一个解释的超级的好的博客,大家可以去看一下:http://blog.csdn.net/v_july_v/article/details/7041827换言之,对于给定的模式串:ABCDABD,它的最大长度表及next 数组分别如下: 根据最大长度表求出了next 数组后,从而有
2015-04-22 11:43:01
631
原创 zoj 3707 Calculate Prime S
fibonacci数列的性质:1.gcd(fib(n),fib(m))=fib(gcd(n,m))证明:可以通过反证法先证fibonacci数列的任意相邻两项一定互素,然后可证n>m时gcd(fib(n),fib(m))=gcd(fib(n-m),fib(m)),递归可求gcd(fib(n),fib(m))=gcd(fib(k),fib(l)),最后k=l,不然继续递归。K
2015-04-21 21:42:26
727
原创 hdu 3498
DLX 重复覆盖模板题# include# include#include#includeusing namespace std;# define N 60# define V N*Nint L[V],R[V];//记录左右方向的双向链表int U[V],D[V];//记录上下方向的双向链表int C[V];//指向其列指针头的地址int H[N];//行指针头int S
2015-04-20 00:08:26
892
原创 JAVA 大数总结
先留下一段代码,以后再写HDU 1042 N!import java.io.BufferedInputStream;import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String args[]){ Scan
2015-04-14 18:37:49
709
原创 浙江省第6届程序设计竞赛结题报告汇总 zoj3202-3212
zoj 3202 Second-price Auction水题,不解释了,直接贴代码#include#include#include#includeusing namespace std;struct node{ int x; int y;};struct node number[105];int cmp(struct node a,struct node b){
2015-04-05 23:59:45
954
原创 平面点集的最小包围圆 hdu 3932
最小覆盖圆算法地址:http://soft.cs.tsinghua.edu.cn/blog/?q=node/1066平面点集的最小包围圆1、 问题背景 考察固定在工作平台上的一直机械手,要捡起散落在不同位置的多个零件,并送到别的地方。那么,这只机械手的底座应该选在哪里呢?根据直觉,应该选在机械手需够着的那些位置的“中心”。准确地讲,也就是包围这些点的那个
2015-01-22 19:33:12
2460
转载 CA认证简单介绍与工作流程
CA工作原理 数字安全证书利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一
2014-05-07 20:25:23
10506
原创 伸展树(Splay tree)浅谈
树看的越来越多,越来越神奇。看伸展树这种神级数据结构之前,建议大家首先彻底明白二叉搜索树,这是万树的基础。然后可以去看下treap,最好再去看下红黑树。如果有线段树的基础那更好了,我们会发现线段树难以实现一些直接删除,直接插入的数据。这个时候就体现出神级数据解耦 伸展树的魅力了,他的区间操作的非常优雅的。有了这些基础之后,那就可以splay了。zig,zag,zig和z
2014-04-10 11:22:48
1289
原创 hdu 1535 spfa
建个正向的图。建个反向的图。2遍spfa搞定。#include#include#include#include#includeusing namespace std;int p,q;const int inf=0x3f3f3f3f;struct node{ int v,nxt; int w;}edge[1000005];struct s{
2014-04-08 21:12:36
734
原创 zoj 3327 Friend Number 模拟题
一年的省赛题目。先容我骂一下,这题目有病吧,我调试了一个下午+晚上,好不容易才顺利A了,真是坑。比赛中能做出来的那绝对是厉害啊!!。我的思路,方法可能有笨:1.首先判断下有几个0,有一个0的话, 一 。判断0后面有没有比9小的数,有的话那个数加1就可以直接输出了。 二 。如果0是最后一位,前面有比9小的数,那个数+1,后面全输出0即可
2014-04-08 20:13:28
1093
原创 poj 2352 线段树
注意到题目中给的y是递增的,那个y没什么用,直接线段树维护一段1,x的区间。#include#include#include#include#includeusing namespace std;const int N=32005;int record[32005];struct node{ int l,r; int n;}s[3*N+10];void
2014-04-08 14:09:31
787
转载 C++string详解
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题……… 首先,为了在我们的程
2014-04-07 21:02:17
522
原创 pat 1025 反转链表
注意到地址是一些数字,所以直接用int存了,这样就可以不用map了。机制的学叔。我就是个逗逼。#include int node[100000][3];int list[100000];int main(){ int n, k, start; while(scanf("%d%d%d", &start, &n, &k) != EOF) {
2014-04-07 20:54:09
996
原创 hdu 2648 map水过
#include#include#include#include#include#include#includeusing namespace std;int main(){ int n,i; while(scanf("%d",&n)!=EOF){ string temp; mapm1; m1.clear();
2014-04-07 15:57:02
821
原创 hdu 1806线段树 区间合并
#include#include#include#includeusing namespace std;int num[100005];const int N=100005;struct edge{ int l,r; int num,count; int rnum,rcount; //左值,左连续 int lnum,lcount; //右值,
2014-04-06 19:05:50
846
原创 hdu 4302 STL multiset
#include#include#include#include#includeusing namespace std;int main(){ int t,ww=1; scanf("%d",&t); for(ww=1;ww<=t;ww++){ multisetq; int i,n,m; scanf("%d%d",
2014-04-05 21:14:13
691
原创 hdu3449 有依赖的背包问题
不解释了,我估计难讲清楚,看代码吧。#include#include#include#include#includeusing namespace std;int f[100005],d[100005];int main(){ int n,ww; while(scanf("%d%d",&n,&ww)!=EOF){ int i,j,k,v[101
2014-04-05 14:16:58
1156
原创 hdu 1027 STL next_permutation
求下一个排列模板#include#include#include#includeusing namespace std;int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF){ int i; int a[1005]; for(i=1;i<=n;i++) a[i
2014-04-04 19:51:55
708
原创 poj 2342 树形DP
树形DP入门题目。树形DP说白了就是在搜索的时候动态规划。只要你懂的深搜+动态规划,就能理解这个基础题了。先直接搜索到最底层,然后一层一层动态规划,可以说有点像数塔。dp[i][1],dp[i][0]代表取这个节点和不取这个节点,所以。dp[i][1]+=dp[v][0] v是的子节点dp[i][0]+=max(dp[v][1],dp[v][0]) 初始的时候将最
2014-04-02 23:46:56
856
转载 C++ map基本操作
C++ map的基本操作和使用 来源:(http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html) - C++ map的基本操作和使用_Live_新浪博客 Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的
2014-04-02 23:22:06
519
原创 zoj 3705 Applications
模拟题。#include#include#include#include#include#includeusing namespace std;const double eps=1e-8;struct student{ char name[50]; double score;}ss[1005];int maomao[1000],old[1000];struct n
2014-04-02 23:20:36
781
原创 最长公共子序列
所有的公共最长上升序列有三种解法:(1) 我刚才说的枚举法(2)递归(3)动态规划#include#includeint dp[1000][1000];int max(int a,int b){ return a=a>b?a:b;}void prit(int b[][100],char *x,int i,int j){ if(i==0||j==0) ret
2014-04-02 00:15:41
935
原创 zoj2968 Difference Game
分析:一 首先答案可以是正数。 那就简单了,先把所有的数进行升序排列,因为ga数组最小的数一定比gb数组最大的数大。所以排列后一定会在相连的位置得到答案。所以就从左到右便利分割点。左边作为gb数组,右边作为ga数组,然后进行原数组的模拟,然后判断下cost有没有超过c即可。如果发现不可能为正数,那就必须是负数了。二 负数的情况 因为每交换一对数会花费2
2014-04-01 19:39:16
922
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人