自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 链表奇偶交换

public class SwapList {private LinkedHashSet df = new LinkedHashSet<>();public ListNode swapList(ListNode l) {if (l == null) {return l;}ListNode dump = new ListNode(0);dump.next = l;ListNode pre = dump;ListNode cur = l; while (cur != nul

2020-12-28 21:48:35 192

原创 全排列-回溯算法的应用

从根遍历这棵树,记录路径上的数字,就是所有的全排列。我们把这棵树称为回溯算法啊的决策树。决策树上每个节点有【路径】和【选择】两个属性。路径:记录已经做过的选择;选择列表:表示当前可以做出的选择;结束条件:也就是到达决策树底层,就是遍历到树的底层,在这里就是选择列表为空的时候。回溯算法框架:result= []def backtrack(选择列表,路径): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: # 做选择

2020-12-24 17:31:48 119 1

原创 台阶变形

台阶问题:假设现在面前有一个n阶的台阶,一只青蛙每次可以爬1阶或者2阶台阶,那么这只青蛙有多少种不同的方法可以爬完这n阶台阶呢?注意,n为正整数。示例1:输入:2, 输出:2,解释: 一种是 1+1 , 一种是2示例2:输入:3,输出:3解释:1+1+1, 1+2, 2+1初始代码:class Solution {public int climbStairs(int n) {if (n < 1) {return 0;}if (n == 1) {return 1;}if

2020-12-24 15:25:33 119

原创 papal面试

一面hdfs有哪些组件,分别的作用spark宽依赖和窄依赖区别哪些是action算子,哪些是map和mappartition区别mappartition和foreachPattition区别如何保证数据结构的安全:可见性,原子性,指令重排序volitile理解如何保证线程安全重量级锁轻量级锁线程池参数,为什么要设置核心线程数,源码可以取系统cpu核数,为什么还要设置,不设置在哪些情况下会不正确java8-Future理解,callable,complableFutue有哪些垃圾收集器

2020-12-17 22:09:41 57

原创 cas+synchronized

3.4 happens-beforehappens-before规定了哪些写操作对其他线程的读操作可见,它是可见性与有序性的一套规则总结:下面所有的变量都是指成员变量或静态成员变量。1)线程解锁m之前对变量的写,对于接下来对m加锁的其他线程对该变量的读可见2)线程对volatile变量的写,对接下来其他线程对该变量的读可见3)线程start前对变量的写,对该线程开始后对该变量的读可见4)线程结束前对变量的写,对其他线程得知它结束后的读可见(比如其他线程调用t1.isAlive()或t1.j

2020-06-28 11:49:51 807

原创 MYSQL优化

2.索引2.1索引概述官方定义:帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用数据,这样就可以在这些数据结构上实现高级查找算法,这种数据就是索引。2.2 索引优势劣势优势1)类似于书记的目录索引,提高数据检索的效率,降低数据库的io成本。2)通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。劣势:1)实际上索引也是一张表,该表中保存了主键与索引字段,并指向实体类的记录,所以索引列也是要占用空间的

2020-06-15 21:42:28 127

原创 字典查找的算法

问题二:字典查找的算法。input:1. input_file每一行有一个词汇,如“浙江”, “浙江大学”, “美国”, “美国政府”。该文件可能有100万词2. a document,字符串。一般有2000字左右。如 “美国规划协会中国办公室揭牌仪式及美国规划领域合作研讨会在浙江大学城乡规划设计研究院208会议室举行。美国规划协会CEO James Drinan,国际项目及外联主任Jeffrey Soule先生,浙江大学党委副书记任少波,浙江大学控股集团领导杨其和,西湖区政府代表应权英副主任…”

2020-06-15 17:20:35 1259

原创 穷尽集合之间的元素组合

穷尽集合之间的元素组合。input: list of list[ [‘a’, ‘b’, ‘c’], [‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’] , [‘A’, ‘B’, ‘C’, ‘D’] ]output:[[‘a’, ‘1’, ‘A’],[‘a’, ‘1’, ‘B’],[‘a’, ‘1’, ‘C’],[‘a’, ‘1’, ‘D’],…[‘c’, ‘6’, ‘D’]]实现下面的方法, 要求不要用递归的方法。class CombinationProblem {pu

2020-06-15 15:33:25 908

原创 数据存储在OBS和HDFS有什么区别?

数据存储在OBS和HDFS有什么区别?MRS集群处理的数据源来源于OBS或HDFS,HDFS是Hadoop分布式文件系统(Hadoop Distributed File System),OBS(Object Storage Service)即对象存储服务,是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。MRS可以直接处理OBS中的数据,客户可以基于云管理平台Web界面和OBS客户端对数据进行浏览、管理和使用,同时可以通过REST API接口方式单独或集成到业务程序进行管理

2020-05-08 18:59:15 1866

原创 hdfs入门

hdfs入门:https://www.jianshu.com/p/6bf9b466330bhttps://blog.csdn.net/strongyoung88/article/details/53608909viewFs入门:https://blog.csdn.net/Androidlushangderen/article/details/51315618

2020-04-26 09:21:33 105

原创 hdfs->obs翻译使用说明

hdfs->obs翻译使用说明功能说明:通过HDFS地址映射到OBS地址的方式,支持将线下数据迁移到OBS后,不需要变动业务逻辑中的数据地址。用户场景:1. 客户端不能修改自己的的业务代码逻辑的情况下,实现上云,将数据从HDFS文件系统迁移到OBS系统,通过使用翻译功能简单配置即可访问存储到OBS的数据。2. 将元数据信息从HDFS文件系统部分迁移到OBS,通过使用翻译功能简单配置即可...

2020-04-25 13:11:36 878

原创 1143:最长公共子序列

leetcode:https://leetcode-cn.com/problems/longest-common-subsequence/题目描述:给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 ...

2020-04-03 18:27:52 77

原创 leetcode70题:爬楼梯

链接:https://leetcode-cn.com/problems/climbing-stairs/题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出:...

2020-04-03 14:47:01 189

原创 选择排序

1 基本思想在未排序序列中找到最大(小)元素,存放到未排序序列的末尾位置。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。2 算法描述①. 从待排序序列中,找到关键字最大的元素;②. 如果最大元素不是待排序序列的最后一个元素,将其和最后一个元素互换;③. 从余下的 N - 1 个元素中,找出关键字最大的元素,重复①、②步,直到排序结束。3 代码实现4 算法效率...

2020-03-31 19:49:10 53

原创 插入排序

public static void insertSort (int[] A, int low, int high) { for (int i=low+1;i<high;i++) { // 从位置low+1开始,与前面的比较 for (int j=i;j>0;j-- ) { if (A[j] < A[...

2020-03-31 12:20:28 49

原创 二叉树的遍历

二叉树是半线性结构,通过按照事先约定的某种规则,即在二叉树的节点之间定义某种线性次序,转化为线性结构,手法就是遍历。遍历:按照某种次序访问树中的各节点,每个节点被访问恰好一次。二叉树结点结构public class BinNode { int value; BinNode left; BinNode right; public BinNode(int val...

2020-03-30 17:06:00 183

原创 归并排序算法

定义:归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。算法描述把长度为n的输入序列分成两个长度为n/2的子序列;O(1)对这两个子序列分别采用归并排序;...

2020-03-28 16:36:41 277

原创 快速排序算法

定义快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。简单点~我们可以把快速排序看着三个步骤:1.选择轴点:在待排...

2020-03-27 20:33:24 140

原创 在排序数组中查找元素的第一个和最后一个位置

本文就来探究几个最常用的二分查找场景:寻找一个数、寻找左侧边界、寻找右侧边界。而且,我们就是要深入细节,比如不等号是否应该带等号,mid 是否应该加一等等。分析这些细节的差异以及出现这些差异的原因,保证你能灵活准确地写出正确的二分查找算法。零、二分查找框架int binarySearch(int[] nums, int target) { int left = 0, right = ....

2020-03-26 20:57:50 675

原创 二分查找的不同版本算法实现

在有序区间[low,high)内查找元素e「二分」的名字,就是把「待搜索区间」分为「有目标元素的区间」和「不包含目标元素的区间」,排除掉「不包含目标元素的区间」的区间,剩下就是「有目标元素的区间」。版本一: public static int binSearch(int[]A, int e, int low, int high) { while (low < high...

2020-03-25 20:07:36 194

原创 存储过程批量插入数据和字符串匹配kmp算法和sql使用like的时间性能对比

1.postgresql存储过程插入1k数据create or replace FUNCTION proc_initData() returns boolean AS$BODY$DECLARE ii integer; begin ii:=1; FOR ii IN 1..1000 LOOP INSERT INTO MRS_JOB (JOB_ID, USER_NAME, JOB_...

2020-03-25 16:25:27 182

原创 [排序算法]--冒泡排序的多种实现(Java)

冒泡排序@TOC欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将...

2020-03-16 20:20:54 322

原创 JVM学习

定义:Java Virtual Machine,java程序的运行环境(java二进制字节码),java源代码j经过javaC编译成class字节码,class字节码使用java程序加载到JVM运行。好处:一次编写到处运行的基石。jvm屏蔽了字节码与底层操作系统(windows,linux等)之间的差异。自动内存管理机制,提供垃圾回收功能。数组下标越界检查,C语言没有越界检查,可能导致数...

2020-02-05 10:16:04 476

原创 okio的jar包冲突解决

在文件/opt/client/Flink/flink/conf/flink-conf.yaml中配置映射关系:XXXX执行flink run -m yarn-cluster -ynm “test” /opt/client/Flink/flink/examples/streaming/WordCount.jar --input hdfs://hacluster/yy/ --output hdfs...

2020-01-17 17:51:49 2029

原创 翻译功能rename的bug解决

不通文件系统rename的源码实现不同,为了解决不同文件系统相互兼容,参考hive源码。问题:190 T3镜像使用这两种方式创建表和插入数据是有问题的最后一步rename失败1)create table pea(id int,name string,company string) row format delimited fields terminated by ‘,’ stored as ...

2020-01-17 17:47:16 466

原创 presto临时文件目录bug解决

Presto执行sql插入语句会建立一个临时目录/tmp/presto-root在默认文件系统,使用hdfs翻译功能时候,需要将临时文件(在hdfs://hacluster/tmp/presto-root下)mv到目标文件目录(obs://yyp/job/yy,即映射的目标文件目录),文件不能跨文件系统移动,导致错误。java.lang.UnsupportedOperationException...

2020-01-17 17:29:25 564

原创 git学习

创建分支a. git checkout -b feature_dev //创建并切换分支b. git branch feature_devgit checkout feature_dev在新分支上开发新特性本地创建分支,同时开发多个特性方便点分支合并git checkout master //切换到本地master分支git merge feature_dev //合fea...

2019-07-04 17:31:18 63

原创 线程和进程

线程和进程各自有什么区别和优劣呢?进程是资源分配的最小单位,线程是程序执行的最小单位。进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。线程之间的通信更方便,同一进程下的线程共享全局变...

2019-04-23 10:52:56 64

原创 Java抽象类和接口的区别?

含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为...

2019-04-23 10:23:43 63

原创 求连续子数组的最大和

题目描述 给定一个数组 array[1, 4, -5, 9, 8, 3, -6],在这个数字中有多个子数组,子数组和最大的应该是:[9,8, 3],输出20,再比如数组为[1, -2, 3, 10, -4, 7, 2, -5],和最大的子数组为[3, 10, -4, 7,2],输出18。一、暴力解法(O(n^3))思路分析1、可以将给定数组的的所有子数组列出来,然后找到子数组和最大的...

2019-04-22 15:51:10 299

原创 反射

java的Class类java中除了基本类型以外,其他类型都属于Class类型(String Object Runnable Exception)class/inteface的数据类型是Class每加载一个class,jvm就为其创建一个Class类型的实例,并关联起来jvm加载String 类:读取String.class文件 -> 为String类创建一个Class实例:Clas...

2019-04-16 16:18:59 70

原创 原子操作

对共享变量写入的时候,必须保证是原子操作原子操作是指不能被中断的一个或者一系列操作n = n + 1;//100编译器经过三个指令操作:ILOAD IAND ISTOREThrea1拿到n=100,执行完指令1ILOAD 后,cpu被Thread2占用,执行完ILOAD IAND ISTORE操作,n是101,此时Thread1继续执行 IAND ISTORE指令,n还是被赋值101,两个...

2019-04-10 11:39:50 85

原创 volatile理解

线程间共享的变量需要使用volatile关键字声明的原因:这涉及到java内存模型: 在java虚拟机中java变量的值保存在主内存中,当线程访问一个变量的时候,会先获取一个副本,并保存在工作内存中,如果线程修改变量的值,虚拟机会在某一个时刻,将修改后的值回写到主内存,什么时候回写是不确定的,这样会导致一个线程更新了变量,另一个线程可能没有读取到最新的值。volatile关键字的目的是告诉虚拟机...

2019-04-10 11:39:26 63

原创 多线程总结

进程:正在运行中的程序,就是一个应用程序运行时的内存分配空间。线程:是进程中一个程序执行控制单元,一条执行路径。进程负责应用程序的空间坐标,线程负责应用程序的的运行顺序。一个进程至少有一个线程在运行。JVM启动时候,首先运行的是主线程。随机性原理:因为cpu的快速切换造成某个线程获取到cpu执行权就执行。启动线程:start()方法,启动了线程,让jvm调用了run()方法创建线程:...

2019-04-04 13:52:57 38

原创 单向链表的环入口点

单向链表是否存在环快慢指针设链表起始点为A,环入口点为B,相遇与C点,AB长度为x,相遇点距离环入口点为m,BC长度为y,要求x.设环长为T快指针走过的路 x+m+k1T慢指针走过的路 x+m+k2T快指针走过的路是慢指针走过来的路的两倍:x+m+k1T = 2( x+m+k2T) 化简后得x+m=(k1-2k2)T有{x+m=(k1-2k2)T, m+y=T,消去m得x-y=(k...

2019-03-30 16:48:57 148

原创 翻转单词顺序

先翻转整个字符串 再翻转各个单词public class Solution {public void Reverse(char [] charArray, int start, int end) {if(charArray == null || start <0 || end > charArray.length-1) {return ;}while(start < ...

2019-03-30 10:02:25 125

原创 总结

1、将不同用户的job进行隔离,不能跨用户进行增删改查。2、 解决创建job配置新建托管池配置正确,资源池创建成功,job运行结束,资源池未自动删除的bug,熟悉分发模块的流程。重启动态创建池的job时,重新用添加job时的创建池的参数去创建池,并更新job数据库中对应的poolIds字段,运行此job。3、 添加job相关的缓存,提高获取Job的所有运行态信息时超时的性能问题。4、多线程并...

2019-03-20 17:10:13 62

原创 动态查询

Spring Data CrudRepository动态查询首先建立一个repository接口,必须继承CrudRepository,JpaSpecificationExecutorpublic interface WaterMatchResultCrudRepository extends CrudRepository&lt;WaterMatchResultEntity, String&g...

2019-03-09 18:18:15 127

空空如也

空空如也

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

TA关注的人

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