自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (2)
  • 收藏
  • 关注

原创 GATK简介

二代测序通过荧光和生物试剂等手段获得人类遗传物质基因的碱基序列,但由于这些获得的信息是大量片段性质的,而且存在一定误差,因此想要准确完整的确定其所处位置和真实的碱基类型需要我们使用计算机的手段来进行分析,这些分析就是我们通常使用的基因测序数据分析流程。二代测序主要分为DNA 测序和RNA 测序,在DNA 测序中,GATK 被广泛应用到1000 Genomes Project和Cancer Genome Atlas 等国际化大项目中,而且被各大研究所和一些基因公司广泛使用。GATK的...

2022-03-30 22:18:01 7984

原创 编程之美:中国象棋将帅问题

题意:请写出一个程序,输出将、帅所有合法的位置,要求在代码中只使用一个变量解法一:位运算,9个位置状态可以用4bit位表示,一共需要1byte。左边4bit,代表A的位置,右边4bit,代表B的位置,然后每次都去更新bit位即可。package com.leetcode.test;public class Test { public static void main(String[] args) { /** ..

2022-03-10 14:37:20 289

原创 Elastic 可观测性小练习

视频链接:https://cloud.tencent.com/developer/salon/live-1443ppt链接:https://docs.qq.com/slide/DUGRzYVVTU3ZxblBP操作文档链接:https://elastic.martinliu.cn/codelabs/elastic-observability-foundation-qq目的可观测性是目前云原生里面比较火的概念,从最初我们学习开发从主机模式着手到基于 C/S 架构的开发模式,接着是从 J2EE 到现在的

2021-06-14 20:50:05 356

原创 Leetcode字符串

1. LC724 找到数组的“中心下标”,使其左边之和等于右边之和,没有返回-1.class Solution { public int pivotIndex(int[] nums) { int sum = 0,left = 0; for(int num:nums){ sum+=num; } for(int i=0; i<nums.length; i++){ if(left*2

2021-06-06 19:33:04 162

原创 6.5 杭州阿里meetup

今天来到阿里访客中心A区参加Elastic 杭州meetup,阿里云Elasticsearch是基于开源Elasticsearch构建的全托管Elasticsearch云服务,在100%兼容开源功能的同时,不仅提供云上开箱即用的ELKB在内的Elastic Stack组件,还与Elastic官方合作提供免费X-Pack(白金版高级特性)商业插件,集成了日志分析场景、搜索场景、安全场景等高级特性,被广泛应用于实时日志分析处理、信息检索、以及数据的多维查询和统计分析等场景。part1是 Elastic...

2021-06-06 12:04:49 192 2

原创 跨集群操作

Elasticsearch集群天然支持横向水平扩展,因此当业务规模扩大、对集群产生读写压力时,增加节点总是运维人员的“懒人选择”。但随着节点数增多,集群主节点要维护的meta信息也随之增多,这会导致集群更新压力增大甚至无法提供正常服务。 另外每个企业的数据中心都需要有灾备方案在集群间同步数据,因为单点集群会存在隐患。鉴于此,Elastic官方提供了跨集群操作。主要包括:(1)跨集群搜索(CCS):允许配置多个远程集群并且在所有已配置的集群中实现联合搜索。(2)跨集群复制(CCR):允许跨多个集群复制索

2021-06-03 17:13:40 749

原创 724. 寻找数组的中心下标

题意给定一个整数数组,返回“中心下标”。“中心下标”的定义是其左边元素之和等于右边元素之和。思路1先算出所有数组的元素之和sum,然后遍历该数组:每次算左边的元素之和(因为考虑边界需要算上当前元素)left_sum,如果(left_sum-nums[i])*2+nums[i]==sum 则返回该元素下标,否则返回-1。class Solution { public int pivotIndex(int[] nums) { int sum=0; for(int

2021-03-26 16:28:53 67

原创 134. 加油站

题意汽车可以装无限的汽油,现在所有的加油站组成一个循环链。每个加油站你可以充汽油的值:gas,从该加油站到下一个加油站的耗费:cost。要问你从哪个加油站出发才能保证可以畅游全程。分析假设我们从0加油站出发每次求净值(当前可充的汽油值gas减去从当前点出发的耗费)并记录最小值。如果一圈下来,当前最小值已被后面加油站补血大于等于0,那么我们完全可以从0点出发。如果最小值为负,那么我们从后往前补血如果可以使得最小值为正那就从该点出发。如果补血不成功,那么整个环无论从哪个点出发都要GG。代码class

2021-03-01 13:50:33 100

原创 leetcode组合问题汇总

###39. 组合总和题意: candidates无重复元素,可以从待选数组中无限次选中一个数字。class Solution { private void dfs(List<List<Integer>> res,List<Integer>tmp,int []candidates, int target, int cur){ int size = candidates.length; if(target == 0) ..

2021-01-22 15:16:38 91

原创 CDH 6.2.1安装(yum安装)

cdh安装包地址https://archive.cloudera.com/cdh6/6.2.1/parcels/https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPMS/x86_64/安装依赖包yum install -y bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb libxm

2021-01-05 15:45:38 1150

原创 剑指 Offer 06. 从尾到头打印链表

思路这道题可以使用栈解决,可以先翻转链表解决。本道题记录下使用递归解决的思路,后面有时间再记录前两种。 使用递归解决,如果是直接打印不需要返回数组,伪代码如下:public void printFunc(ListNode head){ if(head==null) return;System.out.println(head.val);printFun(head.next);}但是这道题别扭的点在于最后要返回一个数组格式,这个时候需要在递归中带入数组并且需要记录数组的下表。代码/**

2020-12-25 09:30:01 62

原创 剑指 Offer 13. 机器人的运动范围

思路题意是给定一个[m,n]的方格子,机器人从左上向右下一定每次移动不能超过k,而k的值是每个格子坐标的数位之和,求该机器人能到达多少格子。我们从(0,0)坐标开始往右或者往下dfs,在遇到越界或者计算坐标数位和大于k或者已经访问过了则return 0。代码class Solution { private int cal(int x,int y){ int sum = 0; while(x!=0){ sum+=x%10;

2020-12-24 16:43:23 62

原创 130. 被围绕的区域

思路题意是要将被字符’X’包围的‘O’改成‘X’,注意如果’O’在边界则永远不会被包围。这道题如果从边界开始思考问题解决起来会比较顺手,如果边界全是‘X’则里面的‘O’全部改变;如果边界出现一个’O’则顺着这个‘O’进行dfs,它所连接的‘O’全部不能被包围,则剩下的区域全部置于‘X’。代码class Solution { private void dfs(int x,int y,char[][]board){ if(x<0||x>=board.length||y&

2020-12-24 14:28:31 64

原创 617. 合并二叉树

思路1题意是要按照节点对应位置把两颗二叉树进行合并。我们可以同时dfs这两颗二叉树,递归出口分三种情况判断:都空则返回null;一个空一个不空返回不空的。然后左递归,右递归。代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x;

2020-12-24 12:03:00 66

原创 127. 单词接龙

思路这个题目意思是给定一个源字符串和目标字符串以及单词字典,要求从源字符串变到目标字符串每次只能改变一个字符并且改变后的字符串都能在字典找到。使用bfs,将源字符串进入队列把字典中和源字符相差1个字符入队列,再以此类推。。class Solution { public int ladderLength(String beginWord, String endWord, List<String> wordList) { Set<String> dictSe

2020-12-23 20:21:07 85

原创 回溯算法

216. 组合总和 III思路:题意是给定[k,n], 从1-9中选出k个数字,他们的和等于n。做法是枚举1-9的数字进行深搜。这里要注意JAVA的深拷贝和浅拷贝。代码:class Solution { private void dfs(List<List<Integer>> res, List<Integer> tmp, int cur, int n, int k){ //如果候选数字的个数达到k并且和是n(n每次遇到新元素减去直到为0)

2020-12-13 23:30:55 138

原创 79. 单词搜索

思路题意是判断目标单词是否存在于二维网格中。思路是使用dfs搜索,遍历这个二维网格并沿着某一个点向它四个方向判断找到这个单词则返回true。我们可以开一个visited二维布尔数组来记录改点是否访问,当然更解决空间的方式是更改二维网格的字符。代码class Solution { private boolean dfs(char[][]board,String word,int i,int j,int index){ //边界判断,当前字符是否相等以及是否遍历到目标单词的最后一位

2020-12-10 15:16:29 214

原创 剑指 Offer 19. 正则表达式匹配

思路实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。1)初始化dp[i][j]表示s字符串的前i个字符和p字符串的前j个字符是否匹配,初始化都是false。很显然前0个字符都是匹配的: dp[0][0]=true。如果第i-1个字符是* 并且dp[0][i-2]是true 那么dp[0][i-2] = true;2) s的第i-1个字符和p的j-1个字符匹配或者p的j-1个字符是.则 dp[i][

2020-12-09 11:02:42 64

原创 659. 分割数组为连续子序列

思路题意是将一个升序子序列分割成多个长度至少为3的连续子序列。举个例子:[1,2,3,3,4,4,5,5] ,这道题可以用自动状态机的思路去解题,我们分为三个长度1,2,3的状态,很显然当长度大于等于3时可以随意增加或者停止append子序列,所以我们应该尽快让每个子序列长度达到3。综上,这道题是一个自动机+贪心的思路。 值:1 2 3 4 5len = 1 1 0 1 0 0len = 2 0 1 0 1 0len&gt

2020-12-06 23:05:56 100

原创 35. 搜索插入位置

思路给定一排序数组和待插元素,若存在则返回位置不存在则返回插入位置。二分,若存在直接返回对应下表,若不存在则找到数组中比目标元素小的那个元素的位置,返回该位置+1.代码class Solution { public int searchInsert(int[] nums, int target) { int size = nums.length; int ret =-1; for(int l=0,r=size-1;l<=r;){

2020-12-04 21:22:53 51

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

思路二分查找,找目标值在数组中的左右端点。代码class Solution { public int[] searchRange(int[] nums, int target) { int []ret = new int[]{-1,-1}; int size = nums.length; //寻找目标值最左端点 for(int l=0,r=size-1;l<=r;){ int mid = (l+r)&

2020-12-04 14:49:07 49

原创 33. 搜索旋转排序数组

思路题意是一个升序数组按照数组内随机的点进行旋转,判断target是否存在该数组中并返回对应的位置。这道题使用最暴力的方法也能过但并非出题的目的。仔细想想如果查找有序数组元素存在一般使用二分查找时间复杂度O(logN)。这道题仅仅是在中间某个点的位置做了旋转,还是保留了原来有序数组很多特征,思路1:能否先找到断点和target比较,然后根据断点前后皆为有序的特征进行查找,思路2:边查找target过程中比较头尾(l,r),分三种情况:(1. r>=mid>=l则此段数组有序,二分查找之 (2

2020-12-04 11:55:16 68

原创 32. 最长有效括号(未完待续)

思路题目是要求给定一个字符串,求满足左右括号规范的最大连续子串。满足左右括号规范的常用手段可以计左括号为1,右括号为-1遍历到最后和是0则满足规范或者使用栈:将左括号push进去遇到右括号则弹出最后栈空则满足规范。这个问题解决的思路有:思路一:定义一个二维数组dp[i][j]表示以第i个字符结尾最长有效括号的长度:其中i表示第i个字符,j表示在i之前的字符 。假如j+value>=0则可继续追加字符。状态转移方程为:dp[i+1][j+value] = max(dp[i][j]+1, 1)

2020-12-01 08:21:02 108

原创 31. 下一个排列

思路主要思路是从后向前遍历找到最长“不增区间”的前一个元素比如:[1,2,3,7,4]找到[7,3]前的一个元素3;在[7,4]中找到该区间最小且大于3的元素4;swap 3,4–>[1,2,4,7,3]; 对于[7,3]排序–>[1,2,4,3,7]代码class Solution { public void nextPermutation(int[] nums) { int size = nums.length; int i = 0;

2020-11-26 15:57:52 52

原创 30. 串联所有单词的子串

思路字符串排序,枚举s所有的子串,一一比较。代码class Solution { public List<Integer> findSubstring(String s, String[] words) { //将字符串数组排序 Arrays.sort(words); List<Integer> res = new ArrayList<>(); //单个字符串的大小 int wor

2020-11-26 10:33:25 62

原创 29. 两数相除

思路题目要求将两数相除,不使用乘法、除法和 mod 运算符,那最朴素的做法就是每次减被除数、计数器++但是这样做很明显会超时。改进思路是对被除数减的时候使用倍增的方法(二分)。在Java中,当t=Integer.MIN_VALUE时(t取相反数依旧是它本身)此时可能存在越界问题,因此都用负数进行计算.代码class Solution { public int divide(int dividend, int divisor) { if(divisor==0||(divi

2020-11-26 09:21:00 91 1

原创 25. K 个一组翻转链表

思路每次找到需要翻转的起始点以及结束点的下一个指针代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val

2020-11-24 14:23:23 92

原创 222. 完全二叉树的节点个数

思路普通解法是顺着思路递归就可以AC,看到题解里有利用完全二叉树的性质进行计算感觉十分有趣,遂尝试下这种思路。完全二叉树是满二叉树的一个变种,假如左右子树高度相同说明左子树为满二叉树,直接计算之再对右子树进行递归统计;假如左子树比右边子树高说明最后一整层没满but倒数第二层满了计算右子树再对左子树递归之。该思路的代码/** * Definition for a binary tree node. * public class TreeNode { * int val; *

2020-11-24 10:23:25 87

原创 452. 用最少数量的箭引爆气球

思路贪心,对于每个气球至少安排一个弓箭手就可以射穿;在射穿该气球的同时我们尽可能地往后移动击穿尽可能多的其他气球。按照气球的左端点从小到大排序维护左右区间代码class Solution { public int findMinArrowShots(int[][] points) { if(points.length==0) return 0; Arrays.sort(points,(o1,o2)->(o1[0]<o2[0]?-1:1));

2020-11-23 19:05:42 85

原创 92. 反转链表 II

思路找到逆置段开始的节点(前一个节点):将head向前移动m-1并且使用modify_tail存储逆置后的尾节点,so easy逆置n-m+1中间段,注意:再次过程中head其实就像个游标完成整个任务而result用来保存最开始head指向的位置。这样,我们其实有了三段链表:result—>pre; new_head—>modify_tail;head–>lastnode; 最后只需要链接即可。...

2020-11-22 16:05:59 65

原创 CountDownLatch

### 介绍A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes. CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。ACountDownLatchis initialized with a givencount. Theawa...

2020-11-18 15:20:03 88 2

原创 JAVA设计模式学习与实践

本人JAVA渣渣,从Python半路出家转到JAVA的坑,一直想系统学习整理下JAVA设计模式。设计模式大多是经验之谈,关键是理解思想。工厂模式工厂模式(Factory Pattern)是Java 中最常用的设计模式之一。 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。原始模式Interface:MilkClass: Telunsu 继承Milk接口使用: new Telunsu().getName();简单工厂模式(com.ld.pattern.factory.s

2020-11-17 17:11:17 170

原创 ES Data Pipeline

在我们将数据写入ES时候需要做一些个性化的定制、数据清洗等需求,我在这里统称为“ES Data Pipeline”。比如:我们需要在添加每条数据的同时,增加时间戳这个字段并假如添加系统时间;修改某个字段的名称;对于某个字段值进行一些加加减减等等。如何满足这些需求呢,我觉得市面上的一些总结都很乱,在此梳理下脉络结构。更新方式update、update by query在原有索引文档的基础上进行更新。reindex另建索引,将原始索引的数据通过各种手段进行修改写入新的索引。API总览Up.

2020-09-27 10:53:55 271

原创 空间存储压缩理论与实战

热身题一:存储100亿的url的list,每个url最多占用64B。现在想要实现一个过滤系统,判断任意url是否在这个list上。(允许万分之一的判断失误率,额外空间不超过30G)如果将所有url通过数据库或哈希表保存下来至少需要64G的空间显然不符合要求。在允许一定失误率的情况下可以使用布隆过滤器的知识解决。在介绍布隆过滤器之前,先介绍哈希函数的概念:哈希函数将无限的输入值域映射到一个...

2020-03-15 20:27:25 1725

原创 Docker极速入门

docker简述历史2010年源自一家做PAAS平台的公司dotCloud,后来在2013年该公司将其核心技术开源,也就是docker。docker是什么?打开docker官网你就会看到关于docker的介绍:Docker is the software containerization platform.(Docker是软件容器化平台)它的愿景是 build、ship、 ...

2020-02-24 16:23:39 184

原创 基于改进后粒子群算法的ES集群调度

背景调研    随着业务规模的增长,ES集群规模越来越大。各集群的使用场景不同,机器节点配置不同,以及业务场景使用ES的方式不同会造成集群单点CPU飙高,内存不够GC暂停时间过长以及磁盘使用率不足从而影响集群整体性能。   目前,ES集群的调度方法是人工依赖Zabbix以及Grafana监控手动调整集群节点,这种方式一定程度降低了ES集群机器的利用效率。    为提高集群的工作效率节省机器资...

2019-12-13 01:05:26 789 2

原创 深入理解JAVA虚拟机第四章(常用工具使用汇总)

jstackjstack是什么jstack是JVM自带的堆栈跟踪工具,用于打印出给定的java进程ID堆栈信息快照。Java线程的类型有以下两种:用户自定义线程和JVM自身线程(如GC)。线程的状态NEW:线程刚被创建,但是还没有被处理(不会出现在Dump中)RUNNABLE:线程占用了 CPU 并且处理了一个任务。(或是是在等待状态由于操作系统的资源分配)BLOCKED...

2019-11-05 12:36:31 203

原创 BTCU lesson5

链码作用及对链码的管理与测试What is Chaincode?Chaincode is a program, written in Go, node.js, or Java that implements a prescribed interface. Chaincode runs in a secured Docker container isolated from the endors...

2019-11-01 16:47:12 210

原创 深入理解JAVA虚拟机第一章&第二章

五大部分总览宏观介绍整个JAVA技术体系(Java和JVM的发展历程、模块化)、JDK的编译介绍JVM自动内存管理:JVM内存区域的划分,Stackoverflow和OOM现象及其原因、 常见的垃圾收集算法以及垃圾回收器的工作原理虚拟机执行子系统:类文件结构、虚拟类加载机制、虚拟机字节码执行引擎程序的编译以及代码的优化:泛型、自动装箱、条件编译等语法糖的原理、虚拟机热点探测方法、Hots...

2019-10-29 17:28:06 335

原创 BTCU lesson 4

深入理解Fabric网络启动、组织结构设计Fabric中的网络、组织、节点节点【节点】是区块链的通信主体Client 节点,客户端节点,必须链接到一个用户 peer 节点或者 order 节点交互,才能与区块链网络通信Peer节点,包括记账节点、背书节点、主节点、锚节点Order节点,排序节点:接收包含背书签名的交易,进行排序操作完成打包生成区块,广播给 Peer 节点...

2019-10-28 17:42:06 275

c++应用实例

适用于c++初学者,代码通俗易懂,可操作性强

2013-05-19

ACM习题源代码

ACM习题原代码包括浙大等高校在线的源代码,内容丰富,适合初学者

2013-04-11

空空如也

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

TA关注的人

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