自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pardon110的博客

分享技术,共同进步

  • 博客(271)
  • 收藏
  • 关注

原创 rust 快速一览

rust 流水笔记

2024-02-27 16:31:57 1107 2

原创 Jenkins pipeline vs Groovy DSL

pipeline 本质是一个多层嵌套的groovy 闭包

2023-07-07 10:56:13 1227

原创 docker 小记

【代码】docker 小记

2023-06-29 16:55:56 537

原创 s3 删除事故?

一次巡检s3备份查看时, 一回车手滑,出现了下面这种删除画面,生产事故?

2023-06-28 10:22:45 222

原创 flink 读取resource配置返回null

测试服务器表现为无法正常读取资源文件,返回的是null。以下代码在本机可以, docker环境下跑不行。分析,服务器多线程环境,需要获取当前线程的。

2023-06-15 14:19:00 192

原创 json与jsonLines互转

最近在整flink, 官方提供数据源插件json类型是jsonl,而原始alios上存的json类型.考虑到服务器通常是linux,就用sed写了一个转换工具,尽可能的减少依赖。脚本转换为 jsonLines。

2022-12-30 14:02:51 1028 1

原创 maven 5 minute

maven 5 分钟介绍

2022-12-21 10:37:03 79

原创 getPhoneNumber 响应 416

微信小程序响应416

2022-10-01 17:51:26 116

原创 union all 来源分组

mysql 临时表合并分组查询

2022-09-23 17:07:17 202

原创 sed 分支循环 与零宽

sed 分支循环

2022-09-19 15:10:07 419

原创 awk space sort sed

描述将字段逆序输出文件nowcoder.txt的每一行,其中每一字段都是用英文冒号: 相分隔。假设nowcoder.txt内容如下:你的脚本应当输出

2022-07-09 11:41:15 201

原创 不讲武德 移除链表元素[203]

迭代/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } *//** * @param {ListNode} head * @param {number} val * @return {ListN

2021-05-05 23:11:54 93

原创 nodejs代码自动提示概述

根据vscode官方指引,配置nodejs代码自动提示怎么也不成,本文或许对你有些许帮助。不需要用typings, 也不需要刻意安装@types/pkg,直接npm安装,该有提示的地方就有,没有需要你行对应定义或使用第三方d.ts文件代码提示ts是js的超集,vscode是ts书写,因此js代码可由ts增强。官方给出的自动提示有以下三种方式基于引用基于注释用jsdoc插件,会自动提示该注释信息ts声明定义 d.ts文件一句话,需要d.ts文件,并将其与js/ts代码关联,编辑有提示,d.

2021-03-27 15:53:00 1674

原创 合并K个已排序链表

需求合并 k 个已排序的链表并将其作为一个已排序的链表返回[{1,2,3},{4,5,6,7}] // 入参{1,2,3,4,5,6,7} // 返回分治+递归用二分法把列表进行中间拆分融合每个小列表中的链表,反向func mergeKLists( lists []*ListNode ) *ListNode { if lists == nil{ return nil }else if len(lists) == 1 { return l

2020-12-31 13:06:48 386

原创 go 原子数量

原子式给定一个化学式,输出所有原子的数量。格式为:第一个(按字典序)原子的名子,跟着它的数量(如果数量大于 1),然后是第二个原子的名字(按字典序),跟着它的数量(如果数量大于 1),以此类推。输入: formula = "K4(ON(SO3)2)2"输出: "K4N2O14S4"解释: 原子的数量是 {'K': 4, 'N': 2, 'O': 14, 'S': 4}。所有原子的第一个字母为大写,剩余字母都是小写。formula 的长度在[1, 1000]之间。formula 只包含字母

2020-12-28 12:59:08 265

原创 golang 对角线遍历

题面给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]![在这里插入图片描述](https://img-blog.csdnimg.cn/20200901185316306.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR

2020-12-24 12:01:04 213

原创 N皇后

代码func solveNQueens(n int) [][]string { rs := [][]string{} var queen func(int, []int) queen = func(cur int, q []int){ if cur == n { rs = append(rs, trans(q,n)) return } for i:=0;i < n;i++ {

2020-12-24 11:57:31 113

原创 单词搜索详解

题面给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = “ABCCED”, 返回 true给定 word = “SEE”, 返回 true给定 word = “ABCB”, 返回 fa

2020-12-21 11:31:42 624

原创 Go小根堆 数组中的第K个最大元素

题面在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4小根堆小根堆确保堆的长度为ktype IntHeap []intfunc (h IntHeap) Len() int { return len(h) }func (h IntHeap) Less(i, j int) bool { return h[i] <

2020-12-05 19:29:18 354 1

原创 go 自定义最大堆 实现频率排序

题面给定一个字符串,请将字符串里的字符按照出现的频率降序排列。输入:"tree"输出:"eert"解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sort-characters-by-frequency堆排序实现go 堆的 heap.Interface 接口自定义依据重复次数实现最大堆排序规则

2020-12-05 13:31:28 196

原创 golang 数组的相对排序

题面两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19]分析自定义排序,合理描述规则排序规则与索引,值,可哈希相关

2020-11-14 11:09:55 547

原创 滑动窗口 最小覆盖子串

基本模板定义状态向右增大窗口向左缩小窗口持续迭代void window(string s, string t) { unordered_map<char, int> window, target; for (char c : t) { ++target[c]; } int left = 0, right = 0; // 初始化双指针 ... // 定义状态值 while (right &l

2020-10-03 12:25:28 184

原创 golang 用栈实现路径求和

题面输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回[ [5,4,11,2], [

2020-10-01 11:45:18 145

原创 golang 递归 栈 生成括号

与序列相关的问题,参数栈+链表+循环的形式通常更高效对于复用性强,在递归生成括号往往就没有上述高效问题给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合。例如,给出n=3,解集为:"((()))", "(()())", "(())()", "()()()", "()(())",递归关键 当前位置左括号不少于右括号golang 字符串不可变,故可用字节切片生成字符串append 生成的数据依赖于底层数组,有可变性,正常情况下用copy计数边界,分层递进与回溯,回溯期.

2020-09-27 16:37:26 133

原创 php非递归层序化数据库记录

需求从数据库读取到一系列分类记录,如下$arr = array(array('id' => 1, 'pid' => 0, 'name' => '分类1'),array('id' => 2, 'pid' => 0, 'name' => '分类2'),array('id' => 3, 'pid' => 0, 'name' => '分类3'),array('id' => 4, 'pid' => 2, 'name' => '分类2-

2020-09-27 13:03:03 92

原创 虚节点dummy

起源原因对链表而言因头结点的上一个节点不存在,很多对于其他节点,需要用上上一个节点的操作对头结点就不适合,通常就需要单独考虑头结点,若单独考虑头,一个不小心产生许多bug虚拟节点~dummy在链表的头部放入一个哨兵,然后连上head节点。之后就把head节点当做普通节点,就不用单独考虑各种奇葩问题了ListNode* dummy=new ListNode(-1); dummy->next=head;最后返回 return dummy->next;题面给定一

2020-09-26 19:51:56 1331

原创 golang 双重递归之路径总和

递归模型是计算机理论的强力支撑题面给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/path-sum-iiiroot = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \ 5 -3

2020-09-26 16:43:43 163

原创 golang 判断是否为二叉搜索树

引言使用数据范围可以,在合适的场景简化问题中序遍历的有序性方便判定二叉搜索树栈的多变性,在于并非是连续进或出, 而是进出不均等。如对弹出元素相关性分析,确定是否有新关联元素入栈,换而言之,当前出栈的元素连续的后一出栈元素,未必就是当下栈顶元素。如下所示,d 出 e入 再出是e而非最先留下的 c问题判断给出的二叉树是否是一个二叉搜索树(BST)二叉搜索树的定义如下一个节点的左子树上节点的值都小于自身的节点值一个节点的右子树上节点的值都大于自身的节点值所有节点的左右子树都必须是二叉搜

2020-09-24 17:49:38 323

原创 层序遍历的巧用

需求给定一个仅包含数字0-9 0−9 的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。例如根节点到叶子节点的一条路径是1→2→3,那么这条路径就用123 来代替。找出根节点到叶子节点的所有路径表示的数字之和这颗二叉树一共有两条路径,根节点到叶子节点的路径 12根节点到叶子节点的路径 13答案为 12+13=25常规思路先求得根节点到各自叶子节点路径将路径信息转为数字信息相加求和golang实现import "math"func sumNumbers( root

2020-09-24 12:00:58 173

原创 golang 非递归先序 与卡特兰数

非递归分析读取数据是出栈顺序出栈来自栈顶,与数据入栈顺序相反在出栈的同时,考察出栈元素可能产生新的入栈情况出栈的栈顶元素可能会产生新的入栈需求,一出多入,后入先出func preorderTraversal( root *TreeNode ) []int { if root == nil{ return nil } rs :=[]int{} stack :=[]*TreeNode{root} for len(stack)> 0 {

2020-09-21 23:18:31 197

原创 golang 中后序遍历构建二叉树

题面根据一棵树的中序遍历与后序遍历构造二叉树。假设树中没有重复的元素中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回二叉树 3 / \ 9 20 / \ 15 7分析中序遍历将二叉树分成左右两棵子树 (左 根 右)后序遍历最后访问根结点 (左 右 根)递归建树因此可以递归建树先记住中序遍历中每个数出现的位置,通常用hash。(题目条件:不存在重复数,如果存在重复数会更

2020-09-17 13:17:54 334

原创 栈的春天 反转每对括号的子串

栈的使用花样百出,多栈会简化很多问题题面给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。输入:s = "a(bcdefghijkl(mno)p)q"输出:"apmnolkjihgfedcbq"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-.

2020-09-14 12:45:57 154

原创 括号的分数

递归虽简单明了,但能不用尽量不用题面给定一个平衡括号字符串 S,按下述规则计算该字符串的分数:() 得 1 分。AB 得 A + B 分,其中 A 和 B 是平衡括号字符串。(A) 得 2 * A 分,其中 A 是平衡括号字符串。示例输入: "(()(()))"输出: 6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/score-of-parentheses递归本质 寻找拆解当层子串,及条件递归,加,乘法描述平衡字符.

2020-09-13 09:28:46 721

原创 来自数学的降维打击

问题给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。四平方定理任何正整数都可以拆分成不超过4个数的平方和 —> 答案只可能是1,2,3,4若一个数最少可以拆成4个数的平方和,则这个数还满足 n = (4^a)*(8b+7) —> 因此可以先看这个数是否满足上述公式,如果不满足,答案就是1,2,3了若这个数本来就是某个数的平方,那么答案就是1,否则答案就只剩2,3了如果答案是2,即n=a2+b2,那

2020-09-11 12:46:22 875

原创 golang 组合数总和

题面给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]回溯思想回溯算法实际上一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试

2020-09-09 20:11:28 669

原创 算法 求下一个更大的元素

题面给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]分析使用单调栈,出栈针对栈顶单调递增或递减,单步多出直到出栈不不再符合条件p

2020-09-08 20:53:09 141

原创 golang 栈之删除重复项

删除重复项使用golang双向链表重当栈import "container/list"import "strings"func removeDuplicates(S string) string { stack :=list.New() var b strings.Builder for i:=0;i<len(S);i++ { if stack.Len() > 0 { if stack.Back().Value.(b

2020-09-07 19:50:10 235

原创 golang二叉树后序遍历

题面给定一个二叉树,返回它的 后序 遍历。示例输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]分析定义 在二叉树中,先左后右再根,即首先遍历左子树,然后遍历右子树,最后访问根结点已知前序遍历和中序遍历,就能确定后序遍历递归遍历后序遍历左子树后序遍历右子树访问根结点二叉树为空则结束返回type TreeNode struct { Val int Left *TreeNode

2020-09-07 14:49:20 515

原创 php栈之数组与SplStack

SPL(php标准库)提供了SplStack 双链表结构类作为栈的实现类,也可用数组简单替代栈特点先进后出不像列表,有去无回,栈可返回,即天生具备回退功能栈由于一直是在一端操作,因此适合判断成双成对的场景匹配,当全部取完意味为空全部匹配删除最外层括号有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。如果有效字符串.

2020-09-06 19:01:15 315

原创 golang最大子序和

题面给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。分析比较老实的方法,计算所有可能的子序和,取最大值 M*N问题本质在于若干个子序和可能需要被重置,即确定重写的时机若上次求和值小于当前新进值且上次求和小于0,则sum 需要被置为新进程,后开始持续累加实现import "math"func ma

2020-09-04 20:38:43 156

空空如也

空空如也

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

TA关注的人

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