自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ChengUU

程序员橘子的博客,以后会坚持写技术博客并分享,谢谢大家的喜欢!!!

  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 Hive对分组结果进行排序拼接

【代码】Hive对分组结果进行排序拼接。

2022-12-28 15:18:50 1459 1

原创 以前序方式扩展月每日数据

前提:数组有序public static int findLeftFistLessThanOrEqual(List<Integer> sortArrData, Integer target) { if (CollectionUtils.isEmpty(sortArrData) || Objects.isNull(target)) { throw new IllegalArgumentException("sortArrDa

2022-02-27 17:57:30 176

原创 Python生成时间序列数组

欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片

2021-10-25 09:44:25 1867

原创 【基础排序】快速排序: 递归与非递归

算法原理选定一个枢轴值Pivot,设定两个指针Low和High,Low从数组左端开始向右扫描,High从数组右端开始向左扫描,Low跳过所有比Pivot小的元素值,High跳过所有比Pivot大的值,如果二者无法执行上述操作时(Low遇到比Pivot大的值,High遇到比Pivot小的值)交换两指针指向的元素位置,然后继续上述操作,这样就会把数组分为两个部分,一部分比枢轴值大、一部分比枢轴值小。Coding实现递归方式:/** * @author ChengXX */public class

2021-06-24 08:19:26 150

原创 TCP状态机

MSL时间设置的原则:①当TCP执行一个主动关闭时,并发回最后一个ACK,该连接必须在TIME_WAIT状态等待2MSL时间,如此可以让TCP在此发送最后的这个ACK以防止服务器FIN请求的ACK丢失(服务器端超时并重发最后的FIN);②TCP原则上避免使用处于2MSL等待时间的插口(客户端IP地址和端口号,服务器端IP地址和端口号)被使用,只能等2MSL时间结束后方可使用该插口-旧的连接可能会有迟到的报文到达,新的连接极有可能曲解旧连接的报文。指的是如果在TIME_WAIT状态客户端突然挂掉并立即重启,

2021-06-22 22:22:15 1349 2

翻译 MySQL锁类型及作用

MySQL数据库有哪些锁?MySQL数据库锁的应用场景有哪些?主要作用是什么?Shared and Exclusive Locks(共享锁与排他锁)Intention Locks(意向锁)Record Locks(行锁)Gap Locks(间隙锁)Next-Key Locks(Next-Key锁)Insert Intention Locks(插入意向锁)AUTO-INC Locks(自增锁)Predicate Locks for Spatial Inde.

2021-06-20 22:54:07 486

原创 【手撕代码】剑指offer-滑动窗口内的最大值

描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4,2,6

2021-06-17 21:07:20 73

原创 【手撕代码】剑指offer-字符流中第一个不重复的字符

描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。后台会用以下方式调用Insert 和 FirstAppearingOnce 函数string caseout = "";1.读入测试用例字符串casein2.如果对应语言有Init()函数的话,执行Init() 函数3.循环遍历字符串里的每一个字符ch {Insert(ch);c

2021-06-17 20:52:33 104

原创 【手撕代码】剑指offer-数据流的中位数

描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。解题思路计算数据流的中位数难点:数据流是一个动态的数据,在求解中位数时需要考虑动态排序计算当前位置中位数。二叉平衡树可以针对数据流实现实现动态排序,但传统的二叉平衡树只会考虑左右子树的深度导致树失去平衡,本题所面对的场景

2021-06-17 08:58:24 80

原创 【手撕代码】剑指offer-复制复杂链表

描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)解题思路重点难点:复制出来的链表的随机指针如何完成复制, 复制时有的结点可能还未生成。因此我们需要先将这些节点复制出来,然后再完成随机指针映射,此时的关键是怎么才可以最快找到随机指针指向的结点。在此记录一种解法:复制链表中所有结点并将新的结点插入原结点下一位置初

2021-06-16 08:15:20 66

原创 【手撕代码】剑指offer-二叉树中和为某一值的路径

描述输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。示例1输入:{10,5,12,4,7},22返回值:[[10,5,7],[10,12]]示例2输入:{10,5,12,4,7},15返回值:[]import java.util.List;import java.util.ArrayList;import java.util.Stack;import java.util.

2021-06-13 19:03:39 57

原创 【手撕代码】剑指offer-入栈与出栈顺序匹配

描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)示例1输入:[1,2,3,4,5],[4,3,5,1,2]返回值:falseimport java.util.Stack;public class Solution { publi

2021-06-13 18:26:40 118

原创 【手撕代码】剑指offer-包含min函数的栈

描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。import java.util.Stack;public class Solution { private Stack<Integer> data=new Stack<>(); private Stack<Integer> min=new Stack<>(); public void push(int node

2021-06-13 18:12:59 72

原创 【手撕代码】剑指offer-二叉树镜像

描述操作给定的二叉树,将其变换为源二叉树的镜像。比如: 源二叉树8/ 6 10/ \ / 5 7 9 11镜像二叉树8/ 10 6/ \ / 11 9 7 5示例1输入:{8,6,10,5,7,9,11}返回值:{8,10,6,11,9,7,5}import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; *

2021-06-13 17:58:57 94

原创 【手撕代码】剑指offer-树的子结构

描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)示例1输入:{8,8,#,9,#,2,#,5},{8,9,#,2}返回值:true解题思路从根节点开始比较,如果根节点相等则判断左右子树是否相等从根节点比较不相等,则从左右孩子开始查找子树,重复步骤1/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;

2021-06-13 13:19:07 93

原创 【手撕代码】剑指offer-合并两个有序链表

描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。示例1输入:{1,3,5},{2,4,6}返回值:{1,2,3,4,5,6}/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public Lis

2021-06-13 12:14:01 134

原创 【手撕代码】剑指offer-翻转链表

描述输入一个链表,反转链表后,输出新链表的表头。示例1输入:{1,2,3}返回值:{3,2,1}解题思路新建一个链表,将原链表中所有节点依次插入新链表中/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode Re

2021-06-13 12:02:11 84

原创 【手撕代码】剑指offer-链表中倒数最后k个结点

描述输入一个链表,输出一个链表,该输出链表包含原链表中从倒数第k个结点至尾节点的全部节点。如果该链表长度小于k,请返回一个长度为 0 的链表。示例1输入:{1,2,3,4,5},1返回值:{5}解题思路使用两个指针,一个快指针和一个慢指针,这两个指针相距K个元素,当快指针走到链表尾部时便得到最后K个元素import java.util.*;/* * public class ListNode { * int val; * ListNode next = null; *

2021-06-13 11:47:56 82

原创 【手撕代码】剑指offer-调整数组顺序使得所有奇数位于偶数前面并不改变原有数的顺序

描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。示例1输入:[1,2,3,4]返回值:[1,3,2,4]示例2输入:[2,4,6,5,7]返回值:[5,7,2,4,6]解题思路似曾相似的感觉,将所有满足某个条件的数移动数组指定位置区间,同时将不满足该条件的元素移动至数组另一部分,这不就是快速排序核心思想的一部分吗?因此有了如下解题方法:import ja

2021-06-13 11:35:48 102

原创 【手撕代码】剑指offer-数值的整数次方

描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0。不得使用库函数,同时不需要考虑大数问题,也不用考虑小数点后面0的位数。示例1输入:2.00000,3返回值:8.00000示例2输入:2.10000,3返回值:9.26100示例3输入:2.00000,-2返回值:0.25000说明:2的-2次方等于1/4=0.25解题思路如果exponent<0,将幂转

2021-06-13 10:38:39 55

原创 【手撕代码】剑指offer-二进制中的1的个数

描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。示例1输入:10返回值:2Solutions求解整数二进制,然后统计1的个数使用mark=0x01进行与操作,然后右移mark一位继续与操作,直到mark等于0为止举个例子val=10011,val-1=10010,val&(val-1)=10010…val-1=10001,val&(val-1)=10000public class Solution { public int Numb

2021-06-11 09:09:10 75

原创 【手撕代码】剑指offer-矩形覆盖

描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,从同一个方向看总共有多少种不同的方法?比如n=3时,2*3的矩形块有3种不同的覆盖方法(从同一个方向看):输入描述:2 X 1的小矩形的总个数n返回值描述:覆盖一个2 X n的大矩形总共有多少种不同的方法(从同一个方向看)示例1输入:0返回值:0示例2输入:1返回值:1示例3输入:4返回值:5public class Solution { pub

2021-06-11 08:53:24 51

原创 【手撕代码】剑指offer-跳台阶问题扩展

描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。示例1输入:3返回值:4Solutionspublic class Solution { public int jumpFloorII(int target) { if(target<1){ return 0; } // 到达第一个台阶的方法只有1种 int result=1;

2021-06-10 22:55:25 104 2

原创 【手撕代码】剑指offer-跳台阶

描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。public class Solution { public int jumpFloor(int target) { if(target<1){ return 0; } int[] data=new int[target+1]; data[0]=1; data[1]=

2021-06-10 22:40:19 55

原创 【手撕代码】剑指offer-斐波那契数列

描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n≤39示例1输入:4返回值:3解题思路第0项为0,第1项是1,当n>=2时为前两项之和,即fibonacct[n]=fibonacct[n-1]+fibonacct[n-2]public class Solution { public int Fibonacci(int n) { if(n==0||n==1){ re

2021-06-10 22:32:22 96

原创 【手撕代码】剑指offer-旋转数组的最小值

描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。示例1输入:[3,4,5,1,2]返回值:1解题思路可以暴力搜索整个数组时间复杂度:O(N)空间复杂度:O(1)利用题目有效信息:原数组为非递减数组(有相同元素值数组或者递增数组),即可以理解为一个有序数组,有序数组查找可以考虑二分查找,二分查找的关键是总可以把目标集分割两部分,同时分割出来的

2021-06-10 21:15:36 91

原创 【手撕代码】剑指offer-用两个栈实现队列

描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路栈操作的特点:先进后出队列操作的特点:先进先出如果用栈实现队列则需要将栈中的所有元素出栈一次从而拿到最先入栈的那个元素,入栈操作则需要将上述过程反转过来才可以将元素放到队列尾部。那什么情况下可以不这么复杂,正好此处有两个栈,那么他们可不可以一个负责队列入队offer操作,一个负责队列出队poll操作。import java.util.Stack;public class Solution {

2021-06-10 20:38:26 73

原创 Java开发经验总结-死锁检测

业务代码是否存在死锁?如何排查它们?项目场景:问题描述:解决方案:项目场景:多线程开发时可能会因为竞争资源导致死锁出现,出现死锁的必要条件:竞争资源、请求保持、不可剥夺和循环等待。问题描述:出现死锁时会导致服务器吞吐量降低,此时如何排查是否为死锁导致的问题呢?解决方案:可以使用jps工具获取当前java进程pidjps -l借助jstack工具检测死锁jstack -l <pid>...

2021-06-10 16:32:22 69

原创 【手撕代码】剑指offer-重建二叉树

描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。示例1输入:[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]返回值:{1,2,5,3,4,6,7}输出说明:重建二叉树之后分层遍历结果解题思路前序遍历第一个节点为根节点,中序遍历根节点左右两边元素为左子树中序遍历和右子树中序遍历,同时前序遍

2021-06-10 09:32:14 71

原创 【手撕代码】剑指offer-从尾到头打印链表

描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。示例1输入:{67,0,24,58}返回值:[58,24,0,67]解题思路顺序遍历链表,使用栈记录遍历过程,然后元素出栈顺序便是结论/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;*

2021-06-10 08:34:04 73

原创 【手撕代码】剑指offer-空格替换

描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。示例1输入:“We Are Happy”返回值:“We%20Are%20Happy”解题思路使用Java String类工具方法replaceAll拼接字符串,即遍历字符串数组,替换目标字符import java.util.*;public class Solution { /** * 代码中的类名、

2021-06-10 08:19:00 55

原创 【手撕代码】剑指offer-二维数组查找

描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]给定 target = 7,返回 true。给定 target = 3,返回 false。示例1输入:7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]

2021-06-10 08:03:25 78

原创 Spring Cloud Stream Kafka消费者无法消费延迟消息可能原因

关键点: 匿名消费者是无法消费延迟消息的第一步:检查Spring Cloud Stream Kafka是否配置正确spring: cloud: stream: bindings: <channel-name>: destination: <topic-name> group: <group-id>第二步:检查消费者poll()操作时间是否正确,非匿名消费时默认从最早消息开始消费,因此p

2021-06-06 11:39:30 1031

原创 Kafka消费者常用超时时间配置

session.time.out: 10000heartbeat.interval.ms: 3000max.poll.interval.ms: 300000 session.time.out指定消费者连接至消息队列会话超时时间,如果在这个时间内没有收到心跳包表示会话已超时,默认时间为10秒;heartbeat.interval.ms指定心跳包发送频率,即间隔多长时间发送一次心跳包,优化该值的设置可以减少Rebalance操作,默认时间为3秒;max.poll.interval.ms单词poll(

2021-06-06 11:24:06 12222 2

原创 第七届蓝桥杯【数字填空】

题意从0~9填入如图所示(图一)的十个空格中,要求:不存在相邻的两数在格中相邻,格中相邻的情况为(上下、左右、对角线)。解题思路通过深度优先搜索构造符合条件的组合,然后判断组合中数是否符合题目要求。在看到图一时,我也很是无语,为啥长成这样?能不能规规矩矩的?为了便于检测,在此已将原格子补充完成如下图所示(图二) ,并在相应位置填入,不与0~9中任意数相邻的数(这样仍旧保证添加的两格不影响结果)。具体实现package lanqiao;import java.util.*;public

2021-05-08 11:14:55 169

原创 第七届蓝桥杯【剪邮票】

题意将一版十二生肖邮票(3行4列 如图一)任意五个连在一起的生肖剪下(图二),求有多少种剪法。解题思路本题即为蓝桥杯试题常用解题方法——深度优先搜索和广度优先搜索的结合。此处由于只需要剪掉五张邮票,因此需要选择五张邮票(12选5),此意即为使用深度优先搜索;判断所选择的五生肖是否连在一起,此处我将其考虑为判断图的连通,此为广度优先搜索的征兆。另外此题在数据结构的选取方面,做了些许考虑,在完成此题时,并不一定要采用源码中的数据结构。具体实现package lanqiao;import jav

2021-05-08 10:51:04 175

原创 Canal Server修改binlog解析起始点

需求需要重置Canal Server解析binlog的位点,Canal使用zookeeper记录binlog解析位置,因此实现该需求的方法是重置zookeeper相应节点(路径)值。具体实现方法准备工具包zooinspetor打开zookeeper可视化软件zooinspector修改图中红框node下的值...

2021-01-21 17:29:10 1138

原创 MongoDB导出集合数据并写入csv文件

前言输入MongoDB集合名称然后导出文档对象到csv文件代码实现# -*- coding: UTF-8 -*-"""@description 工具类,数据库@author wendell"""from pymongo import MongoClientimport csvimport codecsdef get_client(): """ 获取连接客户端 :return: 链接客户端 """ return MongoClient("mon

2021-01-16 12:37:12 414 2

原创 MySQL删除重复数据的一种方法

MySQL删除重复数据的一种方法需求描述方法描述具体操作步骤需求描述一个表中存在重复数据,当然重复数据判定的标准可能不一样,例如:表中记录一模一样,或者表中的记录某几个字段一模一样,这个时候需要将重复的记录删除,在此给出我常用的一种方法。方法描述假设存在表A(table_a),重复字段columns(column1,column2,column3…),存在索引idx_columns具体操作步骤drop table if exists table_a_tmp;drop table if exis

2021-01-16 12:06:41 282

Turbo C 3.0

推荐的C语言开发工具,占用空间小,操作简单。

2015-06-09

空空如也

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

TA关注的人

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