自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一些lc周赛

一些lc周赛

2023-01-29 17:09:32 553 1

原创 Flink笔记+源码阅读(时间、窗口)

Flink笔记+源码阅读(时间、窗口)

2022-09-03 12:15:23 260

原创 记录 && 包括一些规范的输入输出 【c++】

记录 && 包括一些输入输出处理

2022-09-03 12:14:45 266

原创 Flink源码阅读笔记——StreamGraph、JobGraph、ExecutionGraph

Flink源码阅读笔记——StreamGraph、JobGraph、ExecutionGraph

2022-08-29 10:51:37 729

原创 lc hot100+javase整理

lc hot100+javase整理

2022-08-28 15:48:02 774

原创 流式计算中的 Window 计算

window计算定义实时计算中的Watermark概念window类型及其实现原理、高级优化

2022-08-04 10:10:55 362 1

原创 剑指整理+javase基础回顾

剑指整理+javase基础回顾

2022-06-30 17:05:17 346

原创 JVM: G1垃圾收集器【思维导图】

G1垃圾收集器堆的逻辑划分堆被划分了多个同等份的区域,每个区域叫做RegionHumongous(大对象)区域存储特别大的对象(大于Region内存的一半)若没有引用指向大对象,就可直接在Minor GC中被回收掉对于「小区域」回收容易控制它的「收集时间」(STW)Minor GC(Young GC)触发时机同之前,等到Eden区满了之后会触发年轻代和老年代占堆空间(有参数设置)会动态根据「最大停顿时间」进行调整,控制MInor GC开销GC过程根扫描同初始化标记.

2022-03-14 20:59:52 577

原创 JVM:CMS垃圾收集器【思维导图】

CMS垃圾收集器以获取最短回收停顿为目标,基于标记清除算法运作过程初始标记(STW)GC Roots能直接关联到的对象及「年轻代」指向「老年代」的对象速度快:因为没有「向下追溯」(只标记一层)并发标记从GC Roots向下「追溯」,标记所有可达的对象并发预处理针对老年代的对象:类cardtable扫描可能由于「并发标记」过程中导致老年代发生变化的对象,会再扫描一遍标记为dirty的卡页针对新生代遍历新生代判断在「并发标记」过程中有没有对象引用了老年.

2022-03-14 20:53:47 223

原创 JVM:垃圾回收机制【思维导图】

垃圾回收机制判断对象不再被使用 p70可达性分析从GC Roots向下搜(一组一定活跃的引用)只要跟「GC Roots」没有直接或者间接引用相连就是垃圾引用计数被引用+1,引用失败-1,计数器为0时不再被引用缺点:若存在:互相依赖(引用)的A、B,引用计数不为0,导致无法回收垃圾回收算法标记清除【标记】哪些没有被「GC Roots」引用的对象【清除】不被「GC Roots」关联的都清除存在问题【内存碎片】标记复制【标记】【复制】:把「标记」.

2022-03-14 16:30:09 1066

原创 前缀、差分数组+应用【思维导图】

前缀、差分差分场景频繁对原始数组的某个区间的元素进⾏增减构造diff 差分数组思路对区间 nums[i…j] 的元素全部+x只需要让 diff[i] += x,diff[j+1] -= x根据反推diff[i] += x :给 nums[i]后所有的元素加xdiff[j+1] -= x :给nums[j+1]后所有元素减x 合并即为对区间[i…j] 中的所有元素都加xdiff[i] = nums[i] - nums[i - 1];反推:res[i].

2022-03-13 15:28:26 426

原创 JVM的内存结构【思维导图】

JVM的内存结构程序计数器记录各个线程执行的字节码地址如果程序正在执行的是一个java方法,PC Register记录的是正在执行的虚拟机字节码指令的地址如果正在执行一个本地方法,这个PC Register值应该为空虚拟机栈每个方法被执行的时候,JVM同步创建一个栈帧,用于存储。每个方法被调用直至执行完毕,对应一个栈帧在虚拟战中入栈出栈的过程。局部变量表操作数栈动态链接返回地址、方法出口本地方法栈同上指非Java方法,一般本地方法用C实现方法区主要用来存放已被JVM加.

2022-03-12 15:45:39 1592

原创 JVM: Java从编译到执行的过程【思维导图】

Java从编译到执行的过程编译语法分析编译语义分析编译注解处理泛型擦除 、lombokclass文件加载加载装载(p263)装载时机为节省内存开销并不会一次性将所有类加载进JVM中。先保证程序正常运行所需要的基础类完全加载,其他类需要的时候再加载。装载规则双亲委派机制类加载器(通过类加载器加载到jvm中)启动(Bootstrap)java核心类库java、javax、sun本地方法拓展(Extension)扩.

2022-03-11 13:33:15 732

原创 Javase基础笔记 【集合Collection、Map】

重载“两同一不同”:同一个类、相同方法名参数列表不同:参数个数不同,参数类型不同方法参数的值传递机制关于变量的赋值如果变量是基本数据类型,此时赋值的是变量所保存的数据值。如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。...

2022-01-16 09:51:45 180

原创 SQL记录

插入记录通常只插入一行记录,插入多行可用insert select into(可包含where子句用来过滤)insert给表插入有指定列值的行insert将select结果插入表中replace select into先尝试插入数据到表中,根据主键或唯一索引进行判断,若已有此行数据,则删掉再重新填入。同上已存在情况也可先delete两个时间差计算方式:UNIX_TIMESTAMP(submit_time)-UNIX_TIMESTAMP(start_time) 返回秒timestampd

2021-11-30 17:41:54 951

原创 HBase || DML DDL

数据模型:命名空间:类似于 DatabBase 概念,有多个表。HBase两个自带的命名空间:hbase(内置的表)default(用户默认使用的命名空间)region类似于表的概念,定义时只需声明时列族row 行由行键(一个)和列(多个)组成,数据是按照行键字典顺序存储的。column 列time stamp 时间戳cell 单元格字节码形式DDLnamespace创建 create_namespace ‘xx’查看 describe_namespace ‘x...

2021-09-26 22:51:34 167

原创 Hive 使用 JDBC 方式访问 Hive || DDL || DML ||窗口函数 ||函数

启动metastore启动hiveserver2启动beeline

2021-09-08 17:55:32 265

原创 Yarn || 工作机制 || 作业提交过程 || 调度器和调度算法

作业提交第 1 步:Client 调用 job.waitForCompletion 方法,向整个集群提交 MapReduce 作业。第 2 步:YarnRunner向ResourceManger申请一个Application。第 3 步:RM 给 YarnRunner 返回该 job 资源的提交路径和作业 id。第 4 步: 提交 jar 包、切片信息和配置文件到指定的资源提交路径。第 5 步:提交完资源后,向 RM 申请运行 MrAppMaster。作业初始化第 6 步:当 RM 收到 C.

2021-08-22 15:09:45 97

原创 MapeReduce编程规范、工作机制 ||FileInputFormat切片 || Shuffle || Partition ||WritableComparable排序 || Combiner

MapReduce编程规范MapperMapper继承父类输入数据是KV对业务逻辑写在map方法中输出数据是KV对map()方法(MapTask进程)对每一个<K,V>调用一次ReducerReducer继承父类输入数据是KV业务逻辑写在reduce方法中)ReduceTask进程对每一组相同k的<k,v>组调用一次reduce()方法Driver用于提交整个程序到YARN集群,提交的是封装了MapReduce程序相关运行参数的job对象I

2021-08-21 23:13:22 155

原创 MapReduce本地wordcount案例

Mapper类将MapTask传入的文本内容按行读入转换成String根据划分方式将这一行切分成单个单词将单词输出为 <单词,1>1)读入转化为string:abc abc abc2)切分abcabcabc3)输出:(abc,1)、(abc,1)、(abc,1)package com.mapreduce.wordcount;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongW

2021-08-11 16:02:24 108

原创 NN 2NN 工作机制 || Fsimage 和 Edits || HDFS读写流程 ||CheckPoint 时间设置

NN 2NN 工作机制元数据:描述数据的数据。FsImage:在磁盘中备份元数据。Edits :(只进行追加操作,效率很高)每当元数据有更新或者添加元数据时,修改内存中的元数据并追加到 Edits 中。一旦 NameNode 节点断电,可以通过 FsImage 和 Edits 的合并,合成元数据。定期合并可以避免文件数据过大而导致的断电后恢复元数据时间过长。引入节点SecondaryNamenode,专门用于 FsImage 和 Edits 的合并。NameNode工作机制1)第一阶段:N

2021-08-07 11:21:44 226

原创 HDFS 的API 操作 || 客户端环境准备 ||文件上传 (参数优先级测试) 下载 删除 更名和移动 文件查看

客户端环境准备1)配置 HADOOP_HOME 环境变量2)配置 JAVA_HOME 环境变量3)在 IDEA 中创建一个 Maven 工程 HdfsClientDemo,并导入相应的依赖坐标+日志添加4)创建包5)创建 HdfsClient 类6)执行程序...

2021-08-04 14:44:02 200

原创 Hadoop HDFS Shell操作

基本语法hadoop fs +具体命令hdfs dfs +具体命令上传1)-moveFromLocal:从本地剪切粘贴到 HDFS$ hadoop fs -moveFromLocal ./xxx.txt/xx当前目录下的txt文件上传到xx目录下,当前目录下的txt文件被剪贴2)-copyFromLocal:从本地文件系统中拷贝文件到 HDFS 路径去$ hadoop fs -copyFromLocal xxx.txt /xx当前目录下的txt文件上传到xx目录下,当前目录下的tx

2021-08-03 16:22:16 253

原创 动态规划 回溯 记忆化回溯 139.单词拆分

题解:求:dp[s.length],dp长度是n+1,存放boolean值1)定义dp数组:dp[i]:长度为 i 的 s[0:i-1] 子串是否能拆分成单词,是一个 Boolean 值。2)初始化及basecase:初始化 dp[0]=True 空字符可以被表示3)状态转移:s[0:i] 子串的 dp[i+1] 是否为真(是否可拆分成单词),取决于两点:它的前缀子串 s[0:j-1] 的 dp[j] ,是否为真。剩余子串 s[j:i],是否是一个独立的单词。solution:clas.

2020-11-01 16:49:31 184

原创 143. 重排链表||链表求中间节点、反转、合并

题解:1、利用快慢指针寻找链表的中间节点 8762、反转链表 206(环形链表141)3、链表合并solution:class Solution { public void reorderList(ListNode head) { if(head==null) return; ListNode mid=middleNode(head); ListNode l1=head; ListNode l2=mid.next; .

2020-10-20 09:06:06 107

原创 寻找链表的倒数第n个节点

两次遍历从头到尾统计节点个数,从而计算出倒数第n个是正数第几个,二次遍历得到。双指针一次遍历快慢指针,快指针先前进n个节点,之后一起前进直到快指针.next为null,此时慢指针所指的节点就是要找的。队列创建一个长度为n的队列,遍历链表逐一进入队列,队列满时继续进行出入队操作,当链表全部遍历完毕时,队尾的元素就是倒数第n个节点。19. 删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3-..

2020-10-20 00:10:54 601

原创 0-1背包问题 || 416 分割等和子集

0-1背包问题的思路1)状态:背包容量、可选择的物品2)选择:装或者不装3)定义dp数组:dp[i][j]=x,前i个物品,容量为j时的背包。x为true/false4)初始化:在没有任何物品装入时的合法状态要求恰好装满:dp[i][0]只有容量为0的背包才能满足没有要求恰好装满:dp[0][i]即没有任何物品放入base case:dp[i][0]=ture装满dp[0][i]=false没有物品5)状态转移方程:(角度:分类讨论)不把这第i个物品装入背包,那么是否能够恰好装满

2020-10-12 20:46:54 184

原创 贪心 动规||跳跃游戏45、55

55. 跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。题解

2020-10-11 15:50:45 58

原创 动规初解||最大子序和 最长上升子序列53、128

53. 最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。题解:1、贪心ans为数组首元素,sum初始化为0,遍历nums,若sum>0保留,并更新(对子序列和有增益效果),若sum<=0(对子序列和无增益效果),舍弃并且令其为当前遍历到的nums[i]ans=-2 sum=0 ,ans

2020-10-08 22:45:42 82

原创 Binary Tree递归||二叉树展开为链表 530. 二叉搜索树的最小绝对差

114. 二叉树展开为链表给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树将其展开为:题解:把右子树放到左子树最后一个人节点的右子树中左子树置空solution:class Solution { public void flatten(TreeNode root) { if (root == null) return; if (root.left != null) { TreeNode last = root.le

2020-10-06 19:39:38 80

原创 双指针||有序数组去重 排序链表移除元素 26、27、83

26. 删除排序数组中的重复项给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度

2020-10-06 19:23:58 139

原创 TopK

347. 前 K 个高频元素给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。你可以按任意顺

2020-09-07 23:36:55 130

原创 Binarytree练习二叉树层序遍历 || 用队列实现层序遍历

107. 二叉树的层次遍历 II给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7],返回其自底向上的层次遍历为:[[15,7],[9,20],[3]]队列class Solution { public List<List<Integer>> levelOrderBottom(TreeNode root) { Linke

2020-09-06 08:56:25 147

原创 回溯 全排列 第k个排列 优美的排列 组合 组合总和 N皇后I II

回溯核心:递归前做选择,递归后撤销46. 全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]class Solution { List<List<Integer>> res = new LinkedList<>(); public List<List<Integer>&

2020-09-03 11:21:50 193

原创 图 钥匙和房间

841. 钥匙和房间有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,…,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。最初,除 0 号房间外的其余所有房间都被锁住。你可以自由地在房间之间来回走动。如果能进入每个房间

2020-08-31 22:06:14 89

原创 字符串的反转练习 344、541、557、151

557. 反转字符串中的单词 III给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:“Let’s take LeetCode contest”输出:“s’teL ekat edoCteeL tsetnoc”class Solution { public String reverseWords(String s) { String[] strs=s.split(" "); StringBuffer buffer = new S

2020-08-30 13:04:28 261

原创 双指针 同向双指针、滑动窗口3、594、|27、26、80、83、82、611、187、643、674、209、438、567、424、76、30

3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,

2020-08-29 18:51:48 98

原创 HashTable哈希表与统计594、350、|554、609、454、18

594. 最长和谐子序列和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。示例 1:输入: [1,3,2,2,5,2,3,7]输出: 5原因: 最长的和谐数组是:[3,2,2,2,3]....

2020-08-29 10:01:49 119

原创 双指针头尾指针 167、|345、680、15、16、18、11、42

167. 两数之和 II - 输入有序数组给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目标数

2020-08-20 11:16:40 154

原创 HashTable哈希表与索引1、599、219

1. 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]题解:1)暴力 双重循环2)hashsloution:class Solution { public int

2020-08-19 20:37:12 136

空空如也

空空如也

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

TA关注的人

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