自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 收藏
  • 关注

原创 二叉树总结

226. 翻转二叉树前序遍历/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, Tree

2021-12-07 20:37:19 140

原创 面试总结zj0.2

https://www.cnblogs.com/rjzheng/p/10841031.htmlmysql怎么实现acidC(一致性)是目的,A(原子性)、I(隔离性)、D(持久性)是手段,是为了保证一致性,数据库提供的手段。数据库必须要实现AID三大特性,才有可能实现一致性。例如,原子性无法保证,显然一致性也无法保证。double check的单例模式实现以及单例模式实现有什么缺点流量追踪染色的算法怎么实现的指定时间段内的同时在线最大用户数,以及持续最长区间:https://blog.csdn.

2021-11-05 23:44:31 906

原创 flink面试总结

checkpoint是怎么实现的,用到了哪些配置项暂停处理新流入数据,将新数据缓存起来将算子子任务的本地状态数据拷贝到一个远程的持久化存储上继续处理新流入的数据,包括刚才缓存起来的数据state存在什么地方MemoryStateBackend:放在内存里FsStateBackend:放在文件系统里,数据持久化到文件系统上,文件系统包括本地磁盘、HDFS以及包括Amazon、阿里云在内的云存储服务RocksDBStateBackend:放在rocksDB,磁盘里checkpoi.

2021-10-25 23:10:05 482

原创 SQL相关

一、sql相关问题1、sql中on和where的区别:join过程可以这样理解:首先两个表做一个笛卡尔积,on后面的条件是对这个笛卡尔积做一个过滤形成一张临时表,如果没有where就直接返回结果,如果有where就对上一步的临时表再进行过滤left join : 左连接,返回左表中所有的记录以及右表中连接字段相等的记录。right join : 右连接,返回右表中所有的记录以及左表中连接字段相等的记录。inner join : 内连接,又叫等值连接,只返回两个表中连接字段相等的行。full j

2021-09-17 22:19:19 108

原创 算法题--动态规划

一、最长上升子序列给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。labuladong题解class Solution { public int lengthOfLIS(int[

2021-09-17 22:13:09 79

原创 flink怎么保持数据一致性

flink组件扫盲https://blog.csdn.net/wypblog/article/details/103900577flink怎么保持数据一致性flink在快照过程中,一个节点挂了怎么办https://zhuanlan.zhihu.com/p/348559815在 Flink 中需要端到端精准一次处理的位置有三个:Source 端:数据从上一阶段进入到 Flink 时,需要保证消息精准一次消费。可重设数据的读取位置,当发生故障时重置偏移量到故障之前的位置。Flink 内部端:

2021-08-28 10:17:13 2561 3

原创 算法题-java

dp背包问题问题:动态规划的优化给你一个可装载重量为 W 的背包和 N 个物品,每个物品有重量和价值两个属性。其中第 i 个物品的重量为 wt[i],价值为 val[i],现在让你用这个背包装物品,最多能装的价值是多少?二叉树所有路径的拼接二叉树的每个节点为0-9的一个数字,根到叶子的一条路径拼成一个数,求所有路径形成的数字和struct TreeNode{ TreeNode* left; TreeNode* right; int value;}; int dfs(

2021-08-25 22:20:32 244

原创 问题总结:

hadoop三大组件hdfs组成架构:client、namenode、datanode、secondaryNode读流程写流程Yarn工作流程Mapreduce流程:inputsplittingrecorder readershufflereducereduce task 是自己可以改的map taskkafka各个组件和zookeeper的关系kafka为什么快ack 0 1 -1什么意思读写分离消息顺序选举策略可重复、高可用性flink

2021-08-16 20:47:08 121

原创 面试总结记录

一、嘀嗒一面数据开发组、数据分析组、数据应用组数据开发内容:1、偏数仓建设,大的topic量可以达到十万级别,2、数据中台:日志采集,离线一条,实时一条,质量监控,抽象成模块,组成DAG图,常用逻辑封装平台化,数据中台应用kafka的ack机制:一次响应?kafka线上实操:kafka的6个分区,扩展成20个分区消费kafka是怎么消费的,用原生代码还是写flink程序,kafka扩容之后,下游消费的程序要不要修改,topic的partition增加,要怎么修改;flink任务启动,如果启动失

2021-08-08 21:08:29 134

转载 flink和其它模块交互

Flink从kafka消息队列读取数据转载:https://blog.csdn.net/yanshien840826/article/details/1113138961、首先要设置Flink的执行环境// 创建Flink执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();2、设置Kafka相关参数,连接对应的服务器和端口号,读取名为Shakespeare的Topic中

2021-08-04 09:23:33 615

转载 flink相关

基础概念http://shiyanjun.cn/archives/1508.html用户实现的Flink程序是由Stream和Transformation这两个基本构建块组成,其中Stream是一个中间结果数据,而Transformation是一个操作,它对一个或多个输入Stream进行计算处理,输出一个或多个结果Stream。当一个Flink程序被执行的时候,它会被映射为Streaming Dataflow。一个Streaming Dataflow是由一组Stream和Transformation O

2021-07-26 09:51:57 106

原创 Elasticsearch、kafka相关

elasticSearchDoc Valueshttps://www.elastic.co/guide/cn/elasticsearch/guide/current/_deep_dive_on_doc_values.htmlDoc Values 是在索引时与 倒排索引 同时生成。也就是说 Doc Values 和 倒排索引 一样,基于 Segement 生成并且是不可变的。同时 Doc Values 和 倒排索引 一样序列化到磁盘,这样对性能和扩展性有很大帮助。Doc Values 通过序列化把数据

2021-07-25 15:02:35 191 2

原创 java锁和并发类

ConcurrentHashMap线程安全原理https://www.jianshu.com/p/e10bde0f3cffvolatile关键字:https://www.huaweicloud.com/articles/9cc350bccdc33dd12a5f277197804ba4.html如果一个变量被声明volatile的话,那么这个变量不会被进行重排序,也就是说,虚拟机会保证这个变量之前的代码一定会比它先执行,而之后的代码一定会比它慢执行。例如把上面中的number声明为volatile,

2021-07-20 22:40:45 82

原创 操作系统面经

操作系统https://zhuanlan.zhihu.com/p/143273007常见置换算法有以下四种:最佳置换算法(OPT)(不可能实现)淘汰以后永不使用或最长时间内不再被访问的页面;保证获得最低的缺页率。 但操作系统无法知道各个页面下一次将在什么时候被访问,因此该算法是无法被实现的;先进先出(FIFO)置换算法优先淘汰最早进入内存的页面;实现简单,但性能差;Belady异常:FIFO算法会产生当所分配的物理块数增大而页故障数不减反增的异常现象;最近最少使用(LRU)置换算法置换未使

2021-07-20 21:50:08 165

原创 计算机网络相关面经

传输层的网络拥塞控制算法传输层:TCP udp1、什么是拥塞控制?2、为什么进行拥塞控制?3、测试网络状况4、什么是拥塞窗口?5、阻塞超时6、判断发送超时的情况常用的拥塞控制算法区别什么是 TCP 拥塞控制常见的 TCP 拥塞控制算法BBR总结OSI 模型是什么一、OSI七层模型二、五层体系结构三、三种模型结构:四、各层的作用七层结构五层结构有哪些协议是基于 TCP 的,哪些是基于 UDP 的TCP(传输控制协议):UDP(用户数据报协议,User Data Protocol)总结:TCP、UDP和HTTP

2021-07-19 22:13:27 288 1

原创 用Java语言实现栈

用Java语言实现栈https://blog.csdn.net/Demon_LMMan/article/details/113862897public class Stack {//避免继承带来其他接口可被使用的问题private List list=new ArrayList<>();public int size(){return list.size();}public boolean isEmpty(){ return list.isEmpty();}/*

2021-03-11 23:00:27 68

原创 9月4号-京东数科,9月6号nmwq,9月8号滴滴

京东:索引的分类索引分类1.普通索引index :加速查找2.唯一索引主键索引:primary key :加速查找+约束(不为空且唯一)唯一索引:unique:加速查找+约束 (唯一)3.联合索引-primary key(id,name):联合主键索引-unique(id,name):联合唯一索引-index(id,name):联合普通索引4.全文索引fulltext :用...

2019-10-30 19:54:22 163

原创 8月6号百度+8月9号滴滴

百度:操作系统:用户态和类合态网络状态码lru算法线性数据结构和非线性数据结构java虚拟机,堆栈,gc的roottcp三次握手、四次挥手https的那个sip层的协议是什么超时同传进程和线程的区别进程的几种状态进程之间怎么通信归并排序B+树forkip怎么分发的,怎么从a的ip到b的IP的滴滴:object的类理解,和范型的区别有什么类方法,tostrin...

2019-10-30 17:40:38 115

原创 RabbitMQ应用场景与实例

解决分布式事务的一致性,消息队列、消息中间件,消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。当下主流的消息中间件有RabbitMQ、Kafka、ActiveMQ、RocketMQ等。其能在不同平台之间进行通信,常用来屏蔽各种平台协议之间的特性,实现应用程序之...

2019-10-30 15:54:57 2186

原创 关于服务的理解

当系统功能太多时,随便改一下东西可能都影响到别的功能,启动一次动不动五六分钟,关键是有一些新的小伙伴加入你的时候,每个模块的功能他都要了解,否则一不小心就像拍仓鼠一样,一个bug改了,又冒出来一个。拆分吧,装个逼。拆成微服务。用户一个服务,图书的管理一个服务,拍卖一个服务,短信一个服务。每个服务由不同的人来负责,大家都对自己的业务比较熟悉,项目小而精致。但是拆分会面临以下很多问题:怎么拆分,如何划...

2019-09-30 15:45:18 1283

原创 同步异步的一些概念解释

同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。异步:异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)-...

2019-09-29 17:09:21 9683

转载 java 包装类

https://www.cnblogs.com/bluestorm/archive/2012/04/22/2464739.html1.基本类型:long,int,byte,float,double,char2. 对象类型(类): Long,Integer,Byte,Float,Double,Char,String,其它一切java提供的,或者你自己创建的类。其中Long又叫 long的包装类...

2019-09-25 19:57:14 95

原创 c++指针的理解 *p和**p的区别 *p与p区别

*p和**p的区别一、指针级别不同*p是一级指针。**p是二级指针。二、表示的含义不同*p表示p所指向的地址里面存放的是一个int类型的值 。**p表示p所指向的地址里面存放的是一个指向int类型的指针。三、指向的内容不同*p=a指针p将指向a上的内容。**p=a将变量a的地址 通过指针p 赋值到变量b上。四、存放的内容的地址不同*p指向的地址里面存放的是一个值 。**p...

2019-09-25 14:11:16 16028

原创 剑指 offer第63题-股票的最大利润

可以有一次买入和一次卖出,买入必须在前。求最大收益。使用贪心策略,假设第 i 轮进行卖出操作,买入操作价格应该在 i 之前并且价格最低。Input: [7,1,5,3,6,4]Output: 5Explanation: Buy on day 2 (price = 1) and sell on day 5 (price = 6), profit = 6-1 = 5.Not 7-1 = ...

2019-07-27 21:55:07 359

原创 剑指 offer第62题-圆圈中最后剩下的数

让小朋友们围成一个大圈。然后,随机指定一个数 m,让编号为 0 的小朋友开始报数。每次喊到 m-1 的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续 0…m-1 报数 … 这样下去 … 直到剩下最后一个小朋友,可以不用表演。约瑟夫环,圆圈长度为 n 的解可以看成长度为 n-1 的解再加上报数的长度 m。因为是圆圈,所以最后需要对 n 取余...

2019-07-27 16:22:01 171

原创 剑指 offer第61题-扑克牌顺子

五张牌,其中大小鬼为癞子,牌面为 0。判断这五张牌是否能组成顺子。1、数组排序2、计算0的个数3、计算所有相邻数字之间的空缺数4、要是空缺数小于或者等于0的个数,则连续5、可要是里面有对子,则不是顺子import java.util.*;public class Solution { public boolean isContinuous(int [] numbers) {...

2019-07-27 11:33:39 175

原创 剑指 offer第60题-n 个骰子的点数

把 n 个骰子扔在地上,求点数和为 s 的概率。Input: n = 1Output: [[1, 0.17], [2, 0.17], [3, 0.17], [4, 0.17], [5, 0.17], [6, 0.17]]Explanation: Throw a dice, the sum of the numbers facing up may be 1, 2, 3, 4, 5, 6, ...

2019-07-26 22:16:30 238

原创 剑指 offer第59题-滑动窗口的最大值

给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组 {2, 3, 4, 2, 6, 2, 5, 1} 及滑动窗口的大小 3,那么一共存在 6 个滑动窗口,他们的最大值分别为 {4, 4, 6, 6, 6, 5}。一、使用双向队列https://www.cnblogs.com/CarpenterLee/p/5468803.htmlimport java.util...

2019-07-25 20:59:38 616

原创 剑指 offer第58.2题-左旋转字符串

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。假设字符串abcdef,n=3,设X=abc,Y=def,所以字符串可以表示成XY,如题干,问如何求得YX。假设X的翻转为XT,XT=c...

2019-07-25 09:51:08 72

原创 剑指 offer第58.1题-翻转单词顺序列

Input:“I am a student.”Output:“student. a am I”题目应该有一个隐含条件,就是不能用额外的空间。虽然 Java 的题目输入参数为 String 类型,需要先创建一个字符数组使得空间复杂度为 O(N),但是正确的参数类型应该和原书一样,为字符数组,并且只能使用该字符数组的空间。任何使用了额外空间的解法在面试时都会大打折扣,包括递归解法。正...

2019-07-25 09:13:26 152

原创 剑指 offer第57.2题-和为 S 的连续正数序列

输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序import java.util.ArrayList;public class Solution { public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) { ArrayLis...

2019-07-24 22:22:01 75

原创 剑指 offer第57.1题- 和为 S 的两个数字

输入一个递增排序的数组和一个数字 S,在数组中查找两个数,使得他们的和正好是 S。如果有多对数字的和等于 S,输出两个数的乘积最小的。使用双指针,一个指针指向元素较小的值,一个指针指向元素较大的值。指向较小元素的指针从头向尾遍历,指向较大元素的指针从尾向头遍历。如果两个指针指向元素的和 sum == target,那么得到要求的结果;如果 sum > target,移动较大的元素,使 ...

2019-07-24 11:02:17 80

原创 剑指 offer第55.2题-数组中只出现一次的数字

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。两个不相等的元素在位级表示上必定会有一位存在不同,将数组的所有元素异或得到的结果为不存在重复的两个元素异或的结果。diff &= -diff 得到出 diff 最右侧不为 0 的位,也就是不存在重复的两个元素在位级表示上最右侧不同的那一位,利用这一位就可以将两个元素区分开来。//num1,nu...

2019-07-24 10:44:16 97

原创 剑指 offer第55.2题-平衡二叉树

平衡二叉树左右子树高度差不超过 1。分别计算左右子树的高度,若是差值不超过1,则为平衡二叉树。这是最直接的做法,遍历每个结点,借助一个获取树深度的递归函数,根据该结点的左右子树高度差判断是否平衡,然后递归地对左右子树进行判断。public classSolution { public boolean IsBalanced_Solution(TreeNode root) { ...

2019-07-23 22:22:39 81

原创 剑指 offer第55.1题-二叉树的深度

从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。非递归:层次遍历求深度import java.util.Queue;import java.util.LinkedList; public class Solution { public int TreeDepth(TreeNode pRoot) { if(pRoo...

2019-07-23 22:01:46 75

原创 剑指 offer第54题-二叉查找树的第 K 个结点

中序遍历二叉查找树,就是一个从小到大的顺序,每次记录节点个数/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/pub...

2019-07-23 21:41:52 118

原创 剑指 offer第53题-数字在排序数组中出现的次数

Input:nums = 1, 2, 3, 3, 3, 3, 4, 6K = 3Output:4首先是排序数组,需要找到这个数字,可以使用二分查找。public class Solution { public int GetNumberOfK(int [] array , int k) { int first=binarySearch(array,k);...

2019-07-23 21:04:55 101

原创 剑指 offer第52题-两个链表的第一个公共结点

设 A 的长度为 a + c,B 的长度为 b + c,其中 c 为尾部公共部分长度,可知 a + c + b = b + c + a。当访问链表 A 的指针访问到链表尾部时,令它从链表 B 的头部重新开始访问链表 B;同样地,当访问链表 B 的指针访问到链表尾部时,令它从链表 A 的头部重新开始访问链表 A。这样就能控制访问 A 和 B 两个链表的指针能同时访问到交点。长度相同有公共结点,...

2019-07-23 17:43:30 60

原创 剑指 offer第51题-数组中的逆序对

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%100的数据,size<=2*10^5思路:相当于用归并排序,把数组拆分成两个两个,然后对比,前面的数大于后面的...

2019-07-23 17:00:26 192

原创 剑指 offer第50题-第一个只出现一次的字符位置

在一个字符串中找到第一个只出现一次的字符,并返回它的位置。Input: abaccOutput: b一、创建一个256的数组,来存放他们的出现次数:public class Solution { public int FirstNotRepeatingChar(String str) { int[] cts=new int[256]; for(i...

2019-07-22 21:33:19 98

空空如也

空空如也

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

TA关注的人

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