自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 dolphinschedule配置企微告警服务(WeChat群组)

ds配置好工作流后,比较重要的一个就是上线后的监控报警服务,如果你是基于企微作为协同办公的,WeChat群组预警必须是要安排上的,文章基于自建应用配合群组方式构建预警群,接入后,任务成功或者异常,会通过企微应用在群组内发消息通知,废话不多说,开干!

2023-08-24 20:15:28 1279 1

原创 基于docker-compose快速构建dolphinschedule服务

本文基于docker-compose快速体验Dophinschedule服务,相比基于standalone-server模式,能更加全面体验ds的功能,废话不多说,开干,玩的就是一个真实!

2023-08-23 00:45:54 341

原创 Superset权限管理

Superset权限管理

2023-01-29 17:36:01 2061 1

原创 ‘protoc --version‘ did not return a version or Hadoop2.x maven编译MojoExecutionException异常

'protoc --version' did not return a version

2022-11-29 11:56:19 432

原创 Netty最佳学习路线

netty是一款基于NIO(非阻塞I/O)开发的网络框架,与传统的BIO(阻塞式I/O)相比,它的并发性能得到了很大的提高,而且更节省资源,netty封装了很多NIO的细节,可以屏蔽NIO API带来的不便,并且设计优秀的线程模型让netty的应用更加灵活。netty不仅仅是一个java网络领域的框架,netty涉及多线程技术、复杂数据结构、内存管理模型、设计模式及底层TCP的技术,所以,在接触netty过程中能接触到很多优秀前辈们留下来的瑰宝,值得反复学习琢磨。............

2022-06-21 19:42:19 347

原创 Mac 解决 ERROR launching ‘JD-GUI‘

Mac 解决 ERROR launching ‘JD-GUI’解决:app显示包内容,找到universalJavaApplicationStub.sh, 复制以下内容覆盖 即可#!/bin/bash###################################################################################

2022-04-06 13:48:46 954 1

原创 剑指 Offer II 002. 二进制加法 模拟法

文章目录1.问题描述2.测试用例示例 1示例23.提示4.代码1.模拟法1.问题描述给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。输入为 非空 字符串且只包含数字 1 和 0。2.测试用例示例 1输入: a = "11", b = "10"输出: "101"示例2输入: a = "1010", b = "1011"输出: "10101"3.提示每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。1 <= a.length, b.length

2022-03-02 15:59:35 105

原创 剑指 Offer II 001. 整数除法 减法&&位运算

文章目录1.问题描述2.测试用例示例 1示例2示例3示例43.提示4.代码1.减法思路2.位运算1.问题描述给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回

2022-03-01 13:50:27 445

原创 hadoop java.lang.UnsatisfiedLinkError: Cannot load libsnappy.so.1 (libsnappy.so.1: cannot open share

1.问题errorjava.lang.UnsatisfiedLinkError: Cannot load libsnappy.so.1 (libsnappy.so.1: cannot open shared object file: No such file or directory)!at org.apache.hadoop.io.compress.snappy.SnappyCompressor.initIDs(Native Method)at org.apache.hadoop.io.compre

2022-02-15 18:52:03 1489

原创 mac vagrant up 失败 VBoxManage: error: Failed to create the host-only adapter VBoxManage: error: Con

1.错误日志There was an error while executing VBoxManage, a CLI used by Vagrantfor controlling VirtualBox. The command and stderr is shown below.Command: [“hostonlyif”, “create”]Stderr: 0%…Progress state: NS_ERROR_FAILUREVBoxManage: error: Failed to crea.

2022-02-15 18:16:08 733

原创 Leetcode NO.297 Serialize And Deserialize Binary Tree

文章目录1.问题描述2.测试用例示例 1示例2示例3示例43.提示4.代码1.DFS序列化 二叉树code复杂度1.问题描述序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示: 输入输出格式与 Le

2022-01-27 20:57:56 95

原创 Leetcode NO.17 Letter Combinations Of_A_Phone Number 电话号码的字母组合

文章目录1.问题描述2.测试用例示例 1示例2示例33.提示4.代码1.电话号码的字母组合-回溯code复杂度1.问题描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。2.测试用例示例 1输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例2输入:digits = ""输出:[]示例3

2022-01-24 17:49:15 219

原创 Leetcode NO.46 Permutations 全排列

文章目录1.问题描述2.测试用例示例 1示例2示例33.提示4.代码1.全排列-回溯code复杂度1.问题描述给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。2.测试用例示例 1输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2输入:nums = [0,1]输出:[[0,1],[1,0]]示例3输入:nums = [1]输出:[[1]]

2022-01-21 17:13:39 373

原创 Leetcode NO.322 Coin Change 零钱兑换

文章目录1.问题描述2.测试用例示例 1示例2示例3示例4示例53.提示4.代码1.动态规划code复杂度1.问题描述给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。2.测试用例示例 1输入:coins = [1, 2, 5], amount = 11输出:3 解释:11 = 5 + 5 + 1示例2输入:

2022-01-20 12:02:12 209

原创 发票查验平台 https://inv-veri.chinatax.gov.cn 您的连接不是私密连接,不能访问问题

问题描述国家税务总局全国增值税发票查验平台,https://inv-veri.chinatax.gov.cn 您的连接不是私密连接,不能直接访问问题解决方案直接在页面用键盘输入 thisisunsafe 即可,不用在地址栏输入,直接页面键入thisisunsafe...

2022-01-20 11:23:53 7568

原创 Leetcode NO.198 House Robber 打家劫舍

文章目录1.问题描述2.测试用例示例 1示例23.提示4.代码1.动态规划code复杂度2.动态规划空间优化code复杂度1.问题描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。2.测试用例示例 1输入:[1,2,3,1]输出:4解释:偷窃 1 号

2022-01-19 10:54:51 75

原创 Leetcode NO.1143 Longest Common Subsequence 最长公共子序列

文章目录1.问题描述2.测试用例示例 1示例2示例33.提示4.代码1.动态规划code复杂度1.问题描述给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任 何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的 公共子序列

2022-01-16 21:58:55 86

原创 Leetcode NO.70 Climbing Stairs 爬楼梯

文章目录1.问题描述2.测试用例示例 1示例23.代码1.斐波拉契数列&Dpcode复杂度2.数学-斐波拉契数列通项式code1.问题描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。2.测试用例示例 1输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例2输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶

2022-01-14 23:05:12 169

原创 Leetcode NO.121 Best Time To Buy And Sell Stock 买卖股票时间

文章目录1.问题描述2.测试用例示例 1示例 23.提示4.代码1.暴力code复杂度2.动态规划code复杂度1.问题描述给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。2.测试用例示例 1输入:[7,1,5,3,6,4]输出:5解释:在第

2022-01-11 16:01:11 76

原创 Knapsack Problem 0-1 背包问题

文章目录1.描述2.代码1.动态规划code复杂度2.动态规划&空间优化code复杂度1.描述【0-1背包问题】有一个背包,容量是W=120,有7个物品,物品不可分割。要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。物品: A B C D E F G重量:30 30 60 55 40 10 25价值:10 40 30 50 35 40 302.代码1.动态规划codepublic int knapsackWithDp(int capac

2022-01-06 23:25:44 464

原创 Leetcode NO.509 Fibonacci Number 斐波那契数

文章目录1.问题描述2.测试用例示例 1示例 2示例 33.提示4.代码1.递归code复杂度2.动态规划code复杂度1.问题描述斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:​ F(0) = 0,F(1) = 1​ F(n) = F(n - 1) + F(n - 2),其中 n > 1​ 给你 n ,请计算 F(n) 。2.测试用例示例 1输入:2输出:1解释:F(2) = F

2022-01-05 23:26:18 243

原创 Leetcode NO.55 Jump Game 跳跃游戏

文章目录1.问题描述2.测试用例示例 1示例23.提示4.代码1.贪心循环code复杂度1.问题描述给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。2.测试用例示例 1输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例2输入:nums = [3,2,1,0,4]输出:false

2021-12-28 23:06:20 1383

原创 Leetcode NO.98 Validate Binary Search Tree 验证二叉搜索树

文章目录1.问题描述2.测试用例示例 1示例23.提示4.代码节点信息1.基于前序遍历思路code复杂度2.基于中序遍历思路code复杂度1.问题描述你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。2.测试用例示例 1输入:root = [2,1,3]输出:true示例2输入:root = [5,1,4,nu

2021-12-27 17:49:04 216

原创 Leetcode NO.110 Balanced Binary Tree 平衡二叉树

文章目录1.问题描述2.测试用例示例 1示例2示例33.提示4.代码1.自顶向下code复杂度2.自底向上code复杂度1.问题描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。2.测试用例示例 1输入:root = [3,9,20,null,null,15,7]输出:true示例2输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例3输入

2021-12-26 23:27:08 91

原创 Leetcode NO.226 Invert Binary Tree 翻转二叉树

文章目录1.问题描述2.测试用例示例 13.代码1.前序反转code复杂度2.后序反转code复杂度1.问题描述翻转一棵二叉树。2.测试用例示例 1输入: 4 / \ 2 7 / \ / \1 3 6 9 输出: 4 / \ 7 2 / \ / \9 6 3 13.代码1.前序反转codepublic TreeNode invertTreeWithPreOrder(TreeNode

2021-12-25 23:51:39 310

原创 二叉树的前序遍历、中序遍历、后序遍历、层序遍历

1.节点定义public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int val) { this.val = val; } public TreeNode(int val, TreeNode left, TreeNode right) { this.val = val;

2021-12-23 22:53:28 53

原创 Leetcode NO.56 Merge Intervals 合并区间

文章目录1.问题描述2.测试用例示例 1示例 23.提示4.代码1.首元素排序合并code复杂度1.问题描述以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。2.测试用例示例 1输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]示例 2输入:i

2021-12-22 23:34:57 77

原创 Leetcode NO.75 Sort Colors 颜色分类

文章目录1.问题描述2.测试用例示例 1示例 2示例 3示例 43.提示4.代码1.基于选择排序&两边循环code复杂度2.基于计数排序的&两边forcode复杂度3.基于快速排序&一遍循环code复杂度1.问题描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。2.测试用例示例 1输入:nums = [2,0,2,1,1,0

2021-12-21 22:26:51 179

原创 Leetcode NO.215 Kth Largest Element In An Array 数组中的第K个最大元素

文章目录1.问题描述2.测试用例示例 1示例 23.提示4.代码1.基于堆排序code复杂度2.基于快速选择排序code复杂度1.问题描述给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。2.测试用例示例 1输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 43.提示1 <= k &l

2021-12-20 23:46:04 178

原创 Leetcode NO.136 Single Number 只出现一次的数字

文章目录1.问题描述2.测试用例示例 1示例 2.代码1.数学方式 & hashcode复杂度2.数学方式 异或code复杂度1.问题描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?2.测试用例示例 1输入: [2,2,1]输出: 1示例 2输入: [4,1,2,1,2]输出: 4.代码1.数学方式 & hashcode/**

2021-12-19 23:30:43 287

原创 经典排序算法(六) —— InsertionSort 插入排序

文章目录简介排序过程实现复杂度简介插入排序的算法,同样描述了一种简单直观的排序。它的工作原理是:构建一个有序序列。对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。因为需要双重循环,所以时间复杂度均为O(n^2)。排序过程中,只需要额外的常数空间,所以空间复杂度均为O(1)。排序过程实现@Testpublic void test() { int[] nums = new int[]{4, 8, 9, 6, 3, 5, 7, 1, 2}; int[] sort

2021-12-18 12:52:12 291

原创 经典排序算法(五) —— Merge Sort 归并排序

文章目录简介排序过程实现版本一版本二复杂度简介约翰·冯·诺伊曼在 1945 年提出了归并排序。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。归并排序的时间复杂度是O(nlogn)。代价是需要额外的内存空间。排序过程实现版本一@Testpublic void test() {

2021-12-16 22:36:41 589

原创 经典排序算法(四) —— Quick Sort 快速排序

文章目录简介排序过程实现复杂度简介快速排序的基本思想:通过一趟排序,将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。可以看出,快排也应用了分治思想,一般会用递归来实现。快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下:从数列中挑出一个元素,称为 “基准”(pivot,中心,支点);重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相

2021-12-15 23:25:50 397

原创 经典排序算法(三) —— Shell Sort 希尔排序

经典排序算法(三) —— Shell Sort 希尔排序文章目录经典排序算法(三) —— Shell Sort 希尔排序简介排序过程实现复杂度简介1959年由Shell发明,是第一个突破O(n2)的排序算法,是简单插入排序的改进版。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序又叫****缩小增量排序****。希尔排序在数组中采用****跳跃式分组****的策略,通过某个增量将数组元素划分为若干组,然后分组进行插入排序,随后逐步缩小增量,继续按组进行插入排序操作,直至增量

2021-12-14 19:52:58 594

原创 经典排序算法(二) —— Bubble Sort 冒泡排序

文章目录简介排序过程实现复杂度简介冒泡排序也是一种简单的排序算法。它的基本原理是:重复地扫描要排序的数列,一次比较两个元素,如果它们的大小顺序错误,就把它们交换过来。这样,一次扫描结束,我们可以确保最大(小)的值被移动到序列末尾。这个算法的名字由来,就是因为越小的元素会经由交换,慢慢“浮”到数列的顶端。排序过程实现/** * 冒泡排序 * * @param nums nums * @return re*/public static int[] s

2021-12-13 22:50:00 506

原创 经典排序算法(一) —— Selection Sort 选择排序

经典排序算法(一) —— Selection Sort 选择排序文章目录经典排序算法(一) —— Selection Sort 选择排序简介排序过程实现复杂度简介选择排序是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后追加到已排序序列的末尾。以此类推,直到所有元素均排序完毕。排序过程实现/** * 选择排序 * @param nums 待排序数组

2021-12-12 22:48:32 1068

原创 Leetcode NO.20 Valid Parentheses 有效的括号

文章目录1.问题描述2.测试用例示例 1示例 2示例 3示例 4示例 53.提示4.代码1.栈方式实现code复杂度1.问题描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。2.测试用例示例 1输入:s = “()”输出:true示例 2输入:s = “()[]{}”输出:true示例 3输入:s = “(]”输出:false示例 4输入:s

2021-12-09 19:44:04 79

原创 Leetcode NO.232 Implement Queue Using Stacks 使用栈实现队列

文章目录1.问题描述2.测试用例示例 13.提示4.代码1.入队反转code复杂度2.出队反转code复杂度1.问题描述请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:

2021-12-08 16:36:36 181

原创 Leetcode NO.146 lru-cache LRU Cache 最近最少使用实现

文章目录1.问题描述2.测试用例示例 13.提示4.代码1.继承LinkedHashMap实现code复杂度2.HashMap && DoubleLinklistcode复杂度1.问题描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否

2021-12-07 12:32:13 106

原创 Leetcode NO.255 Implement Stack Using Queues 使用队列实现栈

文章目录1.问题描述2.测试用例示例 13.提示4.代码1.两个队列实现code复杂度2.单队列实现code复杂度1.问题描述请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。

2021-12-06 23:15:30 75

空空如也

空空如也

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

TA关注的人

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