- 博客(509)
- 资源 (5)
- 收藏
- 关注
原创 【牛客网】JZ47 礼物的最大价值
比较常规的动态规划题目,练练手,这题目从左上角走到右下角,用一个二维dp数组表示从(0,0)走到(n,m)获得的最大值,状态转移很容易得出。,注意dp数组的初始化,最上面一行和最左边一列。
2023-03-18 17:17:00
150
原创 【LeetCode】124. 二叉树中的最大路径和
这类题目一般可以通过dfs方式完成,首先我们明白,想要获取这棵二叉树中的最大路径和,那么我们需要知道以每个节点为根的最大路径和,最后找最大的就可以得到答案。那么如何找一个节点的最大路径和呢,一个节点的最大路径和为它的左右两边节点的。,最终每个节点最多会被遍历一次,总的时间复杂度为O(n)。相加的结果,因此,在dfs时候我们需要获取的就是。
2023-03-05 18:02:58
161
原创 [LeetCode]1237. 找出给定方程的正整数解
这种方法关键在于直接利用函数单调递增的特性,一个答案从前往后找,另一个答案从后往前找,下一次寻找一定是基于上一次的结果,因此会少很多次遍历,x最多遍历1000次,y总的遍历次数也最多1000次,因此总的时间复杂度为O(x+y)。既然我们知道y每次都从头开始找比较慢,那么我们可以优化y的查找时间,利用二分查找即可将找y的复杂度降到log级别,因此总的时间复杂度为O(xlogy)。暴力枚举法每次都从开始找y,x最多枚举1000次,而y每次也会枚举1000次,因此,总的复杂度为O(x*y)。
2023-02-18 17:38:28
687
原创 【Git】Windows:Another git process seems to be running in this repository, e.g.an editor opened by ‘..
Another git process seems to be running in this repository, e.g.an editor opened by 'git commit'. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed in this repository earlier:remove the file...
2023-02-04 16:33:32
300
原创 【LeetCode】多数元素
给定一个大小为 n 的数组nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
2023-01-15 17:13:25
150
原创 【Linux】虚拟机安装Ubuntu后的一些通用设置
虚拟机安装Ubuntu后一些比较通用的设置,如实现本机和虚拟机之间复制粘贴共享、ubuntu中vi文件时方向键等问题、防火墙、时区等
2022-10-24 19:16:55
1984
1
原创 【Cmake】CMake Error: Error: generator : Ninja
CMake Error: Error: generator : Ninja
2022-07-21 10:51:02
4927
原创 【牛客网】JZ4 二维数组中的查找
传送门:JZ4 二维数组中的查找题目描述:思路:题目已经指出其中的数字按照行和列都是递增的,那么这题其实很容易想到对每行或者每列进行二分,这样的时间复杂度为O(N*logM),N和M就看二分的是行还是列了。题目要求的是线性时间的复杂度,显然这种方法不是最佳的,根据题目特性我们很容易想到进行线性扫描,我们可以从矩阵的右上角或者左下角进行扫描,因为在右上角时候我们能确定当前行的最大值,当前列的最小值;而在左下角时候我们能确定当前行的最小值,列的最大值,便于扫描的进行。整个线性扫描时间复杂度为O(M+N)..
2022-06-29 21:13:07
329
原创 【牛客网】链表区间反转
题目链接:BM2 链表内指定区间反转题目描述:思路:思路很简单,先定义一个指针,让它走m-1步到第m-1个的位置,然后反转 [m, n]区间内的链表,将其接到前半段中就可以了。代码·:package mainimport . "nc_tools"/* * type ListNode struct{ * Val int * Next *ListNode * } *//** * * @param head ListNode类 * @param m int整型
2022-05-21 21:50:35
460
1
原创 【牛客网】牛客练习赛67(A-D题解)
题目链接:牛客练习赛67A:牛牛爱字符串思路:直接模拟就可以了,但是字符串特别长,如果使用整形数组存数字,最终存不下。方案就是继续象存字符串一样存数字,由于是用的Java,所以可以直接使用BigInteger。代码:import java.util.Scanner;import java.math.BigInteger;public class Main{ public static void main(String[] args){ Scanner cin=new Sc
2022-04-12 15:02:42
455
原创 【GORM】GORM链式执行输出执行的SQL
在上篇文章GORM jinzhu版本和io版本连接MySQL数据库问题中我们讲解了两个版本的GORM数据库连接问题,在GROM使用链式操作过程中,我们想要知道最终执行的SQL是什么,本文讲解三种常见的SQL日志打印方法。一、全局打印所有的SQL在gorm.io版本中,我们可以在建立连接时指定打印info级别的sql。注意gorm版本的io版本import ( "time" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger
2022-04-11 22:14:25
7920
1
原创 【GORM】GORM jinzhu版本和io版本连接MySQL数据库问题
文章目录前言一、GORM jinzhu版二、GORM.IO版本三、两个版本个别方法对比前言众所周知,GORM是一款GO的ORM框架,承担数据持久化工作,在GORM连接数据库中有高低版本的差异,本文给出两个版本的数据库连接方法。一、GORM jinzhu版import "github.com/jinzhu/gorm"db, err := gorm.Open("mysql", "username:password@(localhost)/database?charset=utf8mb4&pa
2022-04-11 21:53:53
4509
原创 【Go基础】Go自定义导入包以及Go常用命令
前言在Go语言入门环境搭建中有两个重要的概念GOPATH和GOROOT,其中GOROOT是我们安装的go路径例如D:\Go,将这个路径设置到环境变量就配置好了GO目录的安装路径了。PATH环境变量就是%GOROOT%\bin路径,如D:\Go\bin路径。而GOPATH则是我们的工作目录,就是写代码的目录,在环境变量中配置之后,我们编译源代码等生成的文件都会放到这个目录下,这个目录下我们一般会新建三个文件夹:src、pkg、bin:src 目录存放的是我们的go源代码,不同工程项目的代码以包名区分。
2022-03-31 21:14:39
4281
原创 【Go基础】Go基础之Socket网络编程
前言socket通信比较好理解的,首先我们都知道socket=ip+port,由此两个不同的主机通过上的两个应用通信通过端口号进行标识。而在传输层通信的传输协议主要包含基于可靠连接的TCP协议和基于UDP无连接的不可靠协议,本文主要用GO实现TCP和UDP的socket通信。TCP的三次握手和四次挥手可参见:两张动图-彻底明白TCP的三次握手与四次挥手一、TCP1.1 服务端Server.go一个TCP服务端可以同时连接很多个客户端,Go语言中创建多个goroutine实现并发非常方便和高效,因此
2022-03-31 16:53:10
3520
原创 【Python】matplotlib.pyplot画热图和损失图
一、损失函数图import matplotlib.pyplot as pltfile = open('E:\\5120154230PythonCode\\PBAN-PyTorch-master\\state_dict\\loss\\PBAN_New_restaurant15_0.001_80_0.2_16.csv') # 打开文档data = file.readlines() # 读取文档数据para_1 = [] # 新建列表,用于保存第一列数据para_2 = [] # 新建列表,用于
2022-03-29 21:04:18
4039
原创 【牛客网】NC149 kmp算法
题目链接:NC149 kmp算法题目描述:思路:KMP的板子题目,主要是next数组的理解和求法,当成模板理解记忆吧。代码:import java.util.*;public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 计算模板串S在文本串T中出现了多少次 * @param S string字符串 模板串 * @param T string字符
2022-03-25 21:01:43
1047
原创 【LeetCode】42. 接雨水
题目链接:42. 接雨水题目描述:题意:题目比较简短,但是图却是很清晰,从图中我们可以看出,当前位置能接的雨水肯定与左右两边中的最高块有关,并且是和它们中的最小值相关,否则就直接溢出了,装不下。思路一:动态规划思路现在我们很明确了,我们要做的就是寻找当前位置的左右两边的最大值,再取它们中的最小值来减去当前位置的高度就能得到当前位置能接的雨水量。这时候,就能很容易想到用两个数组分别记录每个位置的这两个值即可,并且状态转移也是非常的简单,见下面代码。代码:class Solution {
2022-03-25 11:00:10
1497
原创 【LeetCode】61. 旋转链表
题目链接:61. 旋转链表题目描述:思路:思路很容易想到,利用链表长度n减去当前要移动的次数k得到真正需要移动的步数n-k,需要保证一个前提就是k是小于等于n的,这个可以通过取模运算来完成,然后我们移动链表头指针走n-k步,将前一段的链表断开,然后将后半段的尾部指向前半段的头部即可。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; *
2022-03-24 21:32:00
768
原创 【LeetCode】剑指 Offer II 008. 和大于等于 target 的最短子数组+26. 删除有序数组中的重复项
题目链接:剑指 Offer II 008. 和大于等于 target 的最短子数组题目描述:思路:这类题做多了就知道思路用双指针,维护两个指针,区间内维护答案,右指针会不停移动,移动过程中记录下区间中的所有数之和sum,当移动到某个位置时出现sum大于等于target时候,计算答案,再不停移动左指针,直到sum<target,所有答案中取最小即可。代码:class Solution { public int minSubArrayLen(int target, int[] nums)
2022-03-22 20:21:00
168
原创 【数据结构】HashMap、LinkedHashMap和TreeMap区别和使用
文章目录前言1、HashMap2、LinkedHashMap3、TreeMap前言关于HashMap、ConcurrentHashMap底层知识前面已有文章进行分析了,因此,在本文中只会介绍HashMap、LinkedHashMap和TreeMap的一些明显区别。1、HashMapHashMap是无序的数据结构,也就是说,插入顺序和读取顺序不一致,下面简单验证即可。class Test{ public static void main(String[] args) { Ma
2022-03-22 16:06:34
4666
1
原创 【Go基础】搞懂函数回调和闭包
前言在Go语言中,学习到函数时候日常开发中使用的最多的应该是匿名函数了,这是由于Go中函数不能嵌套命名函数,因此只能使用匿名函数。在函数高级部分,一般都会接触到一下两种情况:函数可以作为另一个函数的参数。函数可以返回另一个函数,即让另一个函数作为这个函数的返回值。在使用中,前者对应的正是回调函数,而后者则对应于闭包。一、匿名函数匿名函数,简单来说就是没有名字的函数,匿名函数因为没有函数名,所以没办法像普通函数那样调用,所以匿名函数需要保存到某个变量或者作为立即执行函数。Go中函数内部不允许嵌
2022-03-13 18:03:47
1452
原创 【笔试】虾皮2022秋招提前批SER笔试
1、重排字符串和数字思路:就按照题目要求来写就好了,有一点需要注意的是,再对数字排序时候要考虑最极端的情况可能出现100位左右的数字,这个只能String存了,看到别人Long也过了,但应该是数据不严。排序时候由于是String,因此重新定义排序规则。代码:import java.util.*;public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @par
2022-03-02 16:23:36
614
原创 【Linux】主进程挂了子进程会不会退出,僵尸进程和孤儿进程区别?
文章目录前言一、僵尸进程1.1 僵尸进程的危害1.2 僵尸进程解决方案1.2.1 kill杀死元凶父进程1.2.2 父进程用wait或waitpid去回收资源1.2.3 通过信号机制,在处理函数中调用wait,回收资源二、孤儿进程参考前言 在Unix/Linux系统中,正常情况下,子进程是通过父进程创建的,子进程可以再继续创建新的进程。在Linux中,除了进程0(即PID=0的进程,init进程)以外的所有进程都是由其他进程使用系统调用fork创建的,这里调用fork创建新进程的进程即为父进程,而相对
2022-02-17 16:15:49
5066
原创 【LeetCode】剑指 Offer 45. 把数组排成最小的数
题目链接:剑指 Offer 45. 把数组排成最小的数题目描述:思路:看了这个题,最简单思路就是排序,可以使用数组的排序,需要自定义一个比较规则,这个比较规则为两个数拼接起来要最小的结果,比如10和2拼接有102和210两种结果,这里显然需要102的答案。为了更加方便,这里采用堆来定义这个规则,并且lambda表达式非常方便就实现了,代码极少。代码:class Solution { public String minNumber(int[] nums) { Priority
2022-02-11 21:03:51
243
原创 【LeetCode】剑指 Offer II 100. 三角形中最小路径之和
题目链接:剑指 Offer II 100. 三角形中最小路径之和题目描述:思路:这题和数字三角形差不多思路,直接能想到动态规划,需要注意状态的转移和边界的初始化条件。代码:class Solution { public int minimumTotal(List<List<Integer>> triangle) { int n=triangle.size(); int dp[][]=new int[n][n]; dp[
2022-02-08 21:46:40
682
原创 【LeetCode】1405. 最长快乐字符串
题目链接:1405. 最长快乐字符串题目描述:思路:很容易想到的一个思路—贪心,每次都选取当前剩余数量最多的字母,并检查添加该字母后是否会破坏快乐字符串性质(不会出现连续出现三个相同的字母),此时如果破坏了这种性质,那么就选择第二大的,以此内推下去。为了实现每次取出当前剩余数量最大的字母,借助一个优先队列完成,也可以不借助,但是会多做很多判断。代码:class Solution { public String longestDiverseString(int a, int b, int c
2022-02-08 20:23:40
233
原创 【MySQL】drop、truncate和delete的区别及效率
前言对于drop、truncate和delete,虽然简单,但是真要使用或者面试时候问到还是需要有一定的总结,自己也比较懒,前面很多人总结过了,但是并不完善,因此参看多篇文章之后进行一个总结。在此之前先简单了解下什么是DDL和DML。DDL(数据定义语言,Data Definition Language):DDL代表数据定义语言,是一种有助于创建数据库模式的SQL命令。DDL中常用的命令有:create,drop,alter,truncate和rename等等。DML(数据操作语言,Data Mani
2022-02-07 17:54:14
10509
原创 【LeetCode】剑指 Offer 29. 顺时针打印矩阵、螺旋矩阵系列
题目链接:剑指 Offer 29. 顺时针打印矩阵题目描述:解法:和蛇形填数差不多思想,进行模拟。定义上下左右四个变量模拟即可,具体见代码。class Solution { public int[] spiralOrder(int[][] matrix) { if (matrix == null || matrix.length == 0 || matrix[0].length == 0) { return new int[0]; }
2022-01-23 22:30:51
372
原创 【LeetCode】剑指 Offer 12. 矩阵中的路径
题目链接:剑指 Offer 12. 矩阵中的路径题目描述:思路:这题一看就是搜索,直接套dfs求连通块的板子。简单解释一下就是:找一个开始能匹配进行搜索,搜索该条路过程中标记搜索过的点(这里为矩阵中的字母),当找到一条链路之后递归返回匹配成功如果不能匹配成功,在回溯时候需要进行标记还原class Solution { private char[][] board; private boolean vis[][]; int dir[][]={{1,0},{-1,0},{
2022-01-20 21:28:53
338
原创 【论文写作技巧】Endnote参考文献统一输出格式
前言最近在写毕业论文,参考文献之类的管理最烦了,好在之前学过一点EndNote,但并不知道怎么设置指定的参考文献格式,于是上网查看下资料进行总结。学校要求的是使用国家推荐标准GB/T 7714-2005 规范文后参考文献的格式。本次这里就以Endnote X9软件为例说明怎么制作GB/T7714的输出格式。环境要求:Word(推荐)/WPS、EndNote X9本次需要使用到两个style,下载:Chinese Std GBT7714**.ens提取码:xvgi踩坑说明:为什么推荐使用Word,
2022-01-20 15:54:54
40294
11
原创 【LeetCode】剑指 Offer 11. 旋转数组的最小数字
题目链接:剑指 Offer 11. 旋转数组的最小数字一个简单题,乍一看直接遍历记录个最小值就完事儿,当然这也能直接过,于是写了如下代码:class Solution { public int minArray(int[] numbers) { if(numbers.length==1) return numbers[0]; int res=numbers[0]; for(int num : numbers){ res=r
2022-01-18 21:16:32
214
原创 【Leetcode】剑指 Offer 59 - I. 滑动窗口的最大值
题目链接:剑指 Offer 59 - I. 滑动窗口的最大值题目描述:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。暴力思路:这题暴力思路则是利用双指针维护窗口大小,每次遍历窗口中的元素寻找最大值,此时时间复杂度明显为O(n*k),O(k)的复杂度来源于每次都需要遍历窗口中的元素找最大值,此时我们可以想到用一些数据结构,比如利用一个大根堆(堆顶元素最大)维护一个当前窗口的最大值。此时寻找窗口最大值变为O(logk),主要还是添加元素和删除元素的调整复杂度,总的复杂度也就变
2022-01-12 21:02:07
148
原创 【SpringCloud】SpringCloud之微服务网关GateWay
文章目录前言一、SpringCloud GateWay概述1.1 Zuul1.x的缺陷1.2 Spring WebFlux1.3 GateWay工作流程二、GateWay实战2.1 Spring Cloud Gateway中的Predicate介绍2.2 Spring Cloud Gateway中的Filter介绍2.2.1 自定义全局GlobalFilter三、总结前言通过前面知识的学习,我们已经可以基本搭建出一套微服务架构了,我们有注册中心 EurekaSpringCloud整合Eurea注册中心基
2022-01-03 21:10:36
3491
13
原创 【SpringCloud】SpringCloud之Ribbon及Feign介绍
文章目录前言一、负载均衡介绍1.1 集中式LB和进程内LB1.2 Ribbon本地负载均衡 VS Nginx服务端负载均衡1.3 SpringCloud整合Ribbon使用1.4 Ribbon之轮询算法原理1.5 Ribbon中进行负载规则替换二、RestTemplate介绍三、Feign和OpenFeign介绍3.1 Feign3.2 OpenFeign四、总结前言在上篇文章SpringCloud整合Eurea注册中心基础知识中,我们介绍了Eureka,并利用SpringCloud进行了整合,其中进行
2021-12-31 17:18:35
1051
6
原创 【SpringCloud】SpringCloud整合Eurea注册中心基础知识
文章目录前言一、Eureka基础知识二、SpringCloud整合Eureka作为注册中心2.1 Eureka注册中心搭建2.2 服务提供者支付服务搭建2.3 消费者订单服务搭建2.4 Eureka集群原理总结2.5 再谈RestTemplate和Ribbon的关系2.6 服务发现Discovery2.7 Eureka自我保护机制前言在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实
2021-12-31 11:21:31
833
原创 【SpringCloud】SpringCloud Alibaba组件Sentinel探索之旅
文章目录前言一、Sentinel介绍前言在上一篇文章微服务之服务降级、服务熔断、服务限流三板斧中,我们已经了解了微服务下的几个基本概念:服务降级、服务熔断和服务限流,在本章中,我们主要对Alibaba下的开源组件Sentinel进行探索学习。在学习Sentinel这个组件之前,我们也学习过了一个之前的组件叫做Hystrix,主要用于服务熔断、限流降级等,不过需要进行大量的编码配置,增加代码的耦合度,并且没有一个可视化的web操作界面。Alibaba开源组件弥补这些缺点,能够独立成一个组件,减少系统和组件
2021-12-30 16:32:43
641
原创 【SpringCloud】微服务之服务降级、服务熔断、服务限流三板斧
文章目录一、微服务三板斧1.1 服务降级1.2 服务熔断1.3 服务熔断和服务降级的区别1.3 服务限流二、总结一、微服务三板斧在开发微服务系统时我们通常会面临着高并发问题的考验,为了保证服务的可用性,通常会使用降级、限流和熔断进行处理。接下来我们介绍下这三个基本的概念:服务熔断、服务降级和服务限流,为后面讲解Alibaba的Sentinel组件打下扎实的基础。1.1 服务降级服务降级一般是指在服务器压力剧增的时候,根据实际业务使用情况以及流量,对一些服务和页面有策略的不处理或者用一种简单的方式进行
2021-12-28 16:21:49
9218
8
原创 【SpringCloud】分布式基础之分布式和微服务区别、CAP理论和BASE理论
一、分布式简介随着业务数据量、用户量等激增,单体应用再也无法满足我们的需求了,分布式系统是一个内涵极度丰富的领域,单就应用层次而言就设计分布式缓存,分布式存储,分布式文件系统,分布式锁,分布式事务,分布式调度任务,分布式调度计算,分布式消息,分布式采集等。二、CAP理论在一个分布式系统(指互相连接并共享数据的节点的集合)中,当涉及读写操作时,只能保证一致性(Consistence)、可用性(Availability)、 分区容错性(Partition Tolerance)三者中的两个,另外一个必须被牺
2021-12-26 23:00:37
324
原创 【SpringCloud】Nacos特性介绍以及SpringCloud Alibaba整合Nacos案例
文章目录一、前言二、Nacos特性介绍三、SpringCloud Alibaba整合Nacos3.1 Nacos之服务注册发现3.2 Nacos作为配置中心四、总结一、前言Nacos,全称Dynamic Naming and Configuration Service,Nacos 致力于发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,能够快速实现动态服务发现、服务配置、服务元数据及流量管理。能够更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构
2021-12-26 11:32:41
1017
原创 【SpringCloud】SpringCloud整合Seata分布式事务(下)之客户端业务流程完成
前言在上文章SpringCloud整合Seata分布式事务(上)之基础环境搭建中我们已经搭建好基础的环境了,pom依赖和yml配置也完成了,在本文中,我们主要完成三个微服务订单服务:cloudalibaba-seata-order-service2001、库存服务:cloudalibaba-seata-storage-service2002和余额服务:cloudalibaba-seata-account-service2003的功能实现。整个订单服务的包结构如下所示,三个服务的包结构基本都是这样,就不一
2021-12-25 11:22:09
1063
Spring基本知识点教程+案例演示
2019-12-25
JDK1.8中文百度.CHM
2017-09-25
数字信号处理教程习题分析与解答+清华程佩青第四版+课后习题答案
2017-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅