- 博客(53)
- 资源 (2)
- 收藏
- 关注
原创 0x04.微服务部署开发-若依框架微服务开发(含AI模块运行)
微服务本地开发硬件资源有限,所以会将核心微服务组件先部署在服务器上比如:mysql,redis,注册中心Nacos,网关Gateway,认证中心Auth和upms模块以及低代码生成模块。mysql、redis部署前篇已讲,这里不再赘述。
2025-03-16 00:22:17
379
原创 Guangzhaotest
矩形平面安插9个监测点,每个监测点`竖直`方向安插3个传感器收集四类数据。现在有两种数据格式的数据:1. 2023/5/10 - 2023/5/16 2023/5/10 - 2023/5/13 (为什么提供有交集的数据?可能是有个时间选取范围自动下载文件的系统) 下面的模型基准测试均是使用这个数据。2.更大时间范围的采集数据,但是数据格式略有不同。
2025-03-12 21:40:44
297
1
原创 LambdaQueryWrapper在Mybatis-plus中的应用
是 MyBatis-Plus 中非常强大的工具,用于构建类型安全的查询条件。它利用 Java 的 Lambda 表达式,使得查询条件的编写更加简洁和直观。
2025-02-25 17:05:50
235
原创 0x02.若依框架子模块生成及CRUD低代码编写
重启后端代码,给当前的角色分配菜单(系统管理-->角色管理-->给当前角色管理员分配)这时就会多出demo的子模块和子文件夹,这时候是空的文件夹,没有生成代码。这时候demo文件目录下多了controller接口的实现。(3)使用test111进行登录。(2)对普通用户进行角色管理。(1)新增一个普通用户。重新启动boot单体后端。
2025-02-01 01:00:35
301
原创 GATK简介
二代测序通过荧光和生物试剂等手段获得人类遗传物质基因的碱基序列,但由于这些获得的信息是大量片段性质的,而且存在一定误差,因此想要准确完整的确定其所处位置和真实的碱基类型需要我们使用计算机的手段来进行分析,这些分析就是我们通常使用的基因测序数据分析流程。二代测序主要分为DNA 测序和RNA 测序,在DNA 测序中,GATK 被广泛应用到1000 Genomes Project和Cancer Genome Atlas 等国际化大项目中,而且被各大研究所和一些基因公司广泛使用。GATK的...
2022-03-30 22:18:01
8376
原创 编程之美:中国象棋将帅问题
题意:请写出一个程序,输出将、帅所有合法的位置,要求在代码中只使用一个变量解法一:位运算,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
322
原创 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
402
原创 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
226
原创 6.5 杭州阿里meetup
今天来到阿里访客中心A区参加Elastic 杭州meetup,阿里云Elasticsearch是基于开源Elasticsearch构建的全托管Elasticsearch云服务,在100%兼容开源功能的同时,不仅提供云上开箱即用的ELKB在内的Elastic Stack组件,还与Elastic官方合作提供免费X-Pack(白金版高级特性)商业插件,集成了日志分析场景、搜索场景、安全场景等高级特性,被广泛应用于实时日志分析处理、信息检索、以及数据的多维查询和统计分析等场景。part1是 Elastic...
2021-06-06 12:04:49
227
2
原创 跨集群操作
Elasticsearch集群天然支持横向水平扩展,因此当业务规模扩大、对集群产生读写压力时,增加节点总是运维人员的“懒人选择”。但随着节点数增多,集群主节点要维护的meta信息也随之增多,这会导致集群更新压力增大甚至无法提供正常服务。 另外每个企业的数据中心都需要有灾备方案在集群间同步数据,因为单点集群会存在隐患。鉴于此,Elastic官方提供了跨集群操作。主要包括:(1)跨集群搜索(CCS):允许配置多个远程集群并且在所有已配置的集群中实现联合搜索。(2)跨集群复制(CCR):允许跨多个集群复制索
2021-06-03 17:13:40
822
原创 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
97
原创 134. 加油站
题意汽车可以装无限的汽油,现在所有的加油站组成一个循环链。每个加油站你可以充汽油的值:gas,从该加油站到下一个加油站的耗费:cost。要问你从哪个加油站出发才能保证可以畅游全程。分析假设我们从0加油站出发每次求净值(当前可充的汽油值gas减去从当前点出发的耗费)并记录最小值。如果一圈下来,当前最小值已被后面加油站补血大于等于0,那么我们完全可以从0点出发。如果最小值为负,那么我们从后往前补血如果可以使得最小值为正那就从该点出发。如果补血不成功,那么整个环无论从哪个点出发都要GG。代码class
2021-03-01 13:50:33
129
原创 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
124
原创 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
1269
原创 剑指 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
84
原创 剑指 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
89
原创 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
86
原创 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
88
原创 127. 单词接龙
思路这个题目意思是给定一个源字符串和目标字符串以及单词字典,要求从源字符串变到目标字符串每次只能改变一个字符并且改变后的字符串都能在字典找到。使用bfs,将源字符串进入队列把字典中和源字符相差1个字符入队列,再以此类推。。class Solution { public int ladderLength(String beginWord, String endWord, List<String> wordList) { Set<String> dictSe
2020-12-23 20:21:07
115
原创 回溯算法
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
169
原创 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
240
原创 剑指 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
86
原创 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>
2020-12-06 23:05:56
137
原创 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
75
原创 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
76
原创 33. 搜索旋转排序数组
思路题意是一个升序数组按照数组内随机的点进行旋转,判断target是否存在该数组中并返回对应的位置。这道题使用最暴力的方法也能过但并非出题的目的。仔细想想如果查找有序数组元素存在一般使用二分查找时间复杂度O(logN)。这道题仅仅是在中间某个点的位置做了旋转,还是保留了原来有序数组很多特征,思路1:能否先找到断点和target比较,然后根据断点前后皆为有序的特征进行查找,思路2:边查找target过程中比较头尾(l,r),分三种情况:(1. r>=mid>=l则此段数组有序,二分查找之 (2
2020-12-04 11:55:16
92
原创 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
141
原创 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
77
原创 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
90
原创 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
116
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
122
原创 222. 完全二叉树的节点个数
思路普通解法是顺着思路递归就可以AC,看到题解里有利用完全二叉树的性质进行计算感觉十分有趣,遂尝试下这种思路。完全二叉树是满二叉树的一个变种,假如左右子树高度相同说明左子树为满二叉树,直接计算之再对右子树进行递归统计;假如左子树比右边子树高说明最后一整层没满but倒数第二层满了计算右子树再对左子树递归之。该思路的代码/** * Definition for a binary tree node. * public class TreeNode { * int val; *
2020-11-24 10:23:25
109
原创 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
114
原创 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
87
原创 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
102
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
202
原创 ES Data Pipeline
在我们将数据写入ES时候需要做一些个性化的定制、数据清洗等需求,我在这里统称为“ES Data Pipeline”。比如:我们需要在添加每条数据的同时,增加时间戳这个字段并假如添加系统时间;修改某个字段的名称;对于某个字段值进行一些加加减减等等。如何满足这些需求呢,我觉得市面上的一些总结都很乱,在此梳理下脉络结构。更新方式update、update by query在原有索引文档的基础上进行更新。reindex另建索引,将原始索引的数据通过各种手段进行修改写入新的索引。API总览Up.
2020-09-27 10:53:55
313
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人