- 博客(58)
- 资源 (4)
- 收藏
- 关注
原创 GitLab: The project you were looking for could not be found. fatal: 无法读取远程仓库。 请确认您有正确的访问权限并且仓库存在。
报错背景使用前人申请的服务器,拉取代码,gitlab报错:GitLab: The project you were looking for could not be found.fatal: 无法读取远程仓库。请确认您有正确的访问权限并且仓库存在。解决办法先检查电脑是否生成过秘钥cd ~/.ssh若打开该文件夹为空,则表示没有生成过秘钥,如果有文件,将文件全部删除,然后重新生成秘钥。生成秘钥ssh-keygen -t rsa -C "Title" //Title可以随便取
2021-05-19 17:14:10 13301
原创 maven打包失败:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default
maven打包失败报错:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project bumblebee: There are test failures.报错不要慌,根据提示test failures。解决办法:在pom.xml文件中引入依赖:<plugin> <groupId>org.apache.mave
2021-05-13 16:41:31 1111
原创 JAVA报错:LoggerFactory is not a Logback LoggerContext but Logback is on the classpath.
背景搞了好长时间,到网上找到了一摸一样的报错信息,但是都不管用,顺便总结一下,填坑。项目技术:springboot,dubbo,zookeeper日志信息SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/C:/Users/zhanggong004/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25
2021-05-08 10:31:34 788
原创 2021年4月4日20点腾讯笔试,Java版本
说在前面,第一次笔试,一脸懵逼,这个题其实很简单,但是考的时候根本想不起来用栈来做。第二题题目描述:描述:给出一个有0-9的数字组成的字符串,相邻的两个数字和为10时可以被消去。问最后字符的长度时多少?例如 213792,第一步可以消成2192,第二步消解为22.所以长度为2输入:第一行输入一个 n表示长度第二行输入一个字符串输出:输出一个整数用栈解决最简单,先判断栈是否为空,为空则入栈,然后用字符串第二个字符与stack.peek()相加是否等于10,等于则stack.po
2021-04-06 10:54:43 237 1
原创 MySQL数据库之事务专题
一. 语法开启事务:start transaction; //或begin提交事务commit;回滚rollback;二. 事务管理1.ACID性原子性。事务所包括的操作,要么都执行成功,要么都执行失败。一致性。一个事务在执行前和执行后,数据库都必须处于一致性状态。例如,A账户向B账户转账,A账户扣钱,B账户相应的要加钱,保持一致性。隔离性。并发环境下,并发的事务是互相隔离的。持久性。事务一旦被提交,数据库将永久保存。2. 并发问题脏读。读到了没有提交的数
2021-04-05 17:41:59 185
转载 InnoDB和MyISAM
InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了1、事务和外键InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择2、全文索引Innodb不
2021-04-02 22:03:29 117
原创 动态规划相关问题:最长递增子序列、最大子序和、最长公共子序列
以下内容均参考自书籍:《labuladong的算法小抄》以及自己的经验总结,干货满满。动态规划的思想可以简单概括为:第i时刻的结果与第i-1时刻相关。动态规划解法可以简单概况为:1.确定dp[i]或dp[i][j],也就是动态数组的定义。2.确定起始状态。3.进行状态转移。下面将以几个leetcode上的动态规划的几个题目为例子进行讲解动态三步曲。题目描述:最长递增子序列class Solution { public int lengthOfLIS(int[] nums)
2021-03-21 16:02:10 97
原创 双指针技巧之快慢指针解决链表的四种基本问题
1.判断链表中是否含有环链表的基础问题,链表的特点是每个节点只知道下一个节点,所以一个指针是无法判断链表中是否含有环。如果链表不含环,那么这个指针最终会遇到空指针null,表示链表到头了,以下代码可以判断链表不含环:boolean hasCycle(ListNode head){ while(head != null){ head = head.next; } return false;}如果链表中含有环,以上代码会进入死循环。判断单链表是否含环,经典解法就是双指针,一个跑得快
2021-03-20 15:52:07 213
原创 回溯解决分割回文串问题
题目描述代码class Solution { //存放最终结果 List<List<String>> res = new ArrayList<>(); //存放每次的结果 Deque<String> path = new ArrayDeque<>(); public List<List<String>> partition(String s) { //对空串判
2021-03-09 21:36:24 121
原创 回溯之电话号码的字母组合,与上两篇文章一同饮用,效果最佳
题目描述代码class Solution { //存放最终结果 List<String> res = new ArrayList<>(); //存放临时结果 StringBuffer path = new StringBuffer(); //使用HashMap Map<Character,String> phoneMap = new HashMap<>(){{ put('2',
2021-03-07 17:34:58 79
原创 回溯问题之组合总和问题
题目描述关键是回溯函数参数的确定。代码/* 首先,写出回溯问题的模板代码 public void backtracking(参数){ if(终止条件){ 保存结果; return; } for(遍历树层数){ 节点操作; backtracking();//递归 回溯,撤销上一次操作; } }*/Class Solution{ //存放最终结果 List<List<Integer>> res = new ArrayLi
2021-03-07 16:26:33 104
原创 回溯法解决组合问题。内附回溯法模板,看到就是赚到
题目描述代码class Solution { //存放单个组合 Deque<Integer> path = new ArrayDeque<>(); //List<Integer> path = new ArrayList<>(); //存放最终结果 List<List<Integer>> res = new ArrayList<>(); public List<
2021-03-07 15:27:03 147
原创 无重复字符的最长字串
题目描述代码class Solution { public int lengthOfLongestSubstring(String s) { /* 使用滑动窗口法解决:窗口左侧移动一位,窗口右侧持续向右移动, 保证窗口内无重复字符,遇到重复字符,窗口右侧即停止移动,窗口左侧向右移动一位,重复。 判断是否有重复字符:看使用Set集合内元素不允许重复的特性来判断。
2021-03-06 11:16:44 84
原创 从上到下打印二叉树
题目描述代码//广度优先搜索BFS,使用队列的先进先出特性/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public int[] levelOrder(Tre
2021-03-04 10:25:47 146 1
原创 栈的压入、弹出序列
题目描述代码class Solution { public boolean validateStackSequences(int[] pushed, int[] popped) { Stack<Integer> stack = new Stack<>(); int i = 0; for(int num : pushed){ stack.push(num);
2021-03-02 14:09:47 79
原创 顺时针打印矩阵
题目描述代码class Solution { public int[] spiralOrder(int[][] matrix) { if(matrix.length == 0){ return new int[0]; } int l = 0, r = matrix[0].length - 1, t = 0, b = matrix.length - 1
2021-03-02 13:54:50 97
原创 对称的二叉树
题目描述代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public boolean isSymmetric(TreeNode root) {
2021-03-02 13:46:39 98
原创 二叉树的镜像
题目描述代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public TreeNode mirrorTree(TreeNode root) {
2021-03-02 11:09:09 98
原创 树的子结构
题目描述代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public boolean isSubStructure(TreeNode A, TreeNode
2021-03-02 11:08:06 94
原创 合并两个排序的链表
题目描述代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
2021-03-02 10:13:47 78
原创 反转链表
题目描述代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseList(ListNode head) { if(head == null){
2021-02-22 09:45:08 55
原创 链表中倒数第K个节点
题目描述代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode getKthFromEnd(ListNode head, int k) { if(head ==
2021-02-22 09:28:06 76
原创 调整数组顺序,使奇数位于偶数前面
题目描述代码class Solution { /* public int[] exchange(int[] nums) { int length = nums.length; int[] arr = new int[length]; int a = 0; int j = length; for(int i = 0;i<length;i++){ if(nums[i]%2 == 1
2021-02-22 09:22:27 87
原创 表示数值的字符串
题目描述代码class Solution { public boolean isNumber(String s) { if (s == null || s.length() == 0) return false; //去掉首位空格 s = s.trim(); boolean numFlag = false; boolean dotFlag = false; boolean eFla
2021-02-21 10:41:29 77
原创 删除链表的结点
题目描述代码class Solution { public ListNode deleteNode(ListNode head, int val) { //先判断头结点是否为需删除的点 if(head.val == val){ return head.next; } ListNode pre = head; ListNode cur = head.next; while(
2021-02-21 10:32:05 62
原创 打印从1到最大的n位数
题目描述代码class Solution { public int[] printNumbers(int n) { int end = (int)Math.pow(10,n)-1; int[] arr = new int[end]; for(int i = 1; i <= end;i ++){ arr[i-1] = i; } return arr; }}...
2021-02-21 10:29:13 56
原创 二进制中1的个数--与运算
题目描述代码public class Solution { // you need to treat n as an unsigned value /* & 与运算:0&0=0 1&0=0 0&1=0 1&1=1 | 或运算:有1则1 ^ 异或: 同则0,不同则1 */ public int hammingWeight(int n) { int res =
2021-02-21 10:21:26 224
原创 剪绳子
题目描述代码/* 将绳子 以相等的长度等分为多段 ,得到的乘积最大。 尽可能将绳子以长度 3 等分为多段时,乘积最大。 切分规则: 1.最优:3。把绳子尽可能切为长度为3的片段,留下的最后一段长度可能为0,1,2三种情况。 2.次优:2。若最后一段绳子长度为2;则保留,不在拆分为1+1。 3.最差:1。若最后一段绳子长度为1,则应把一份3+1变为2+2. 算法流程: 1.当 n<=3 时,按照规则应不切分,但由于题目要求必须剪成m>1段,因此
2021-02-21 10:19:40 98
原创 机器人的运动范围--深度优先遍历dfs
题目描述代码class Solution { int m, n, k; boolean[][] visited; public int movingCount(int m, int n, int k) { this.m = m; this.n = n; this.k = k; this.visited = new boolean[m][n]; return dfs(0, 0, 0,
2021-02-21 10:16:25 104
原创 矩阵中的路径(注释详细,可作为模板)--深度优先遍历dfs
题目描述代码class Solution { public boolean exist(char[][] board, String word) { //将string转换成字符数组 char[] words = word.toCharArray(); //从i,j处开始遍历 for(int i = 0;i < board.length; i++){ for(int
2021-02-21 10:11:52 116
原创 旋转数组中的最小数字
题目描述代码class Solution { public int minArray(int[] numbers) { int length = numbers.length; int left = 0; int right = length - 1; int mid = 0; while(left < right){ mid = left + (right - left)/2;
2021-01-23 11:14:02 68
原创 结合斐波那契数列,解决青蛙跳台阶
题目描述代码class Solution { public int numWays(int n) { int a = 1; int b = 1; int sum = 0; for(int i = 0;i < n; i++){ sum = (a + b)%1000000007; a = b; b = sum; } retur
2021-01-23 11:01:01 106
原创 Java斐波那契数列
题目描述:代码:class Solution { public int fib(int n) { int a = 0; int b = 1; int sum = 0; for(int i = 0;i < n;i++){ sum = (a + b)%1000000007; a = b; b = sum; } return a
2021-01-23 10:56:26 90
原创 解决报错:java.sql.SQLException: Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp
解决方法:在数据库的连接配置文件druid.properties中加入zeroDateTimeBehavior=convertToNull,加入前:url=jdbc:mysql://localhost:3306/e?加入后:url=jdbc:mysql://localhost:3306/e?zeroDateTimeBehavior=convertToNull简单有效,完美解决...
2020-11-14 22:25:52 92
原创 Javaweb日常,
1 、Tomcat 的优化经验去掉对 web.xml 的监视,把 jsp 提前编辑成 Servlet。有富余物理内存的情况,加大 tomcat 使用的 jvm 的内存。2 、HTTP 请求的 GET 与 与 POST 方式的区别1、GET请求。请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的 是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。 POST请求。POST请求会把请求的数据放置在HTTP请求
2020-10-26 21:31:48 184
原创 Java日常
1 、两个对象值相同(x.equals(y) == true) ,但却可有不同的 hash code ,这句话对不对?对。如果对象要保存在 HashSet 或 HashMap 中,它们的 equals 相等,那么,它们的 hashcode 值就必须相等。如果不是要保存在 HashSet 或 HashMap,则与 hashcode 没有什么关系了,这时候 hashcode 不等是可以的,例如 arrayList 存储的对象就不用实现 hashcode,当然,我们没有理由不实现,通常都会去实现的。2
2020-10-26 20:46:16 86
原创 剑指offer09--用两个栈实现队列,Java
题目描述:思路:维护两个栈,第一个栈支持插入操作,第二个栈支持删除操作。根据栈先进后出的特性,我们每次往第一个栈里插入元素后,第一个栈的底部元素是最后插入的元素,第一个栈的顶部元素是下一个待删除的元素。为了维护队列先进先出的特性,我们引入第二个栈,用第二个栈维护待删除的元素,在执行删除操作的时候我们首先看下第二个栈是否为空。如果为空,我们将第一个栈里的元素一个个弹出插入到第二个栈里,这样第二个栈里元素的顺序就是待删除的元素的顺序,要执行删除操作的时候我们直接弹出第二个栈的元素返回即可。代码:c
2020-10-24 15:51:23 282
原创 将Java进行到底。Collections专题介绍
1、类集设置的目的。普通的对象数组的最大问题在于数组中的元素个数是固定的,不能动态的扩充大小,所以最早的时候可以通过链表实现一个动态对象数组。但是这样做毕竟太复杂了,所以在 Java 中为了方便用户操作各个数据结构, 所以引入了类集的概念,有时候就可以把类集称为 java 对数据结构的实现。 类集中最大的几个操作接口:Collection、Map、Iterator,这三个接口为以后要使用的最重点的接口。 所有的类集操作的接口或类都在 java.util 包中。2、Collection 接口(重点)
2020-10-24 15:33:14 86
原创 剑指offer06--从尾到头打印链表。Java实现,搞定Java。
题目描述:思路:思路相对简单,利用栈先进后出的特性,先将链表值push()入栈,然后建立数组,将栈内值依次pop()存入数组,返回数组即可。代码class Solution { public int[] reversePrint(ListNode head) { //使用栈,先将链表值push()入栈,然后建立数组,将栈内值pop()存入数组 Stack<ListNode> stack = new Stack(); ListNo.
2020-10-23 10:57:43 71
原创 JavaJavaJava--我爱Java,日常整理,
1 、sleep() 和 wait() 有什么区别?sleep 是线程类(Thread)的方法,sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过后,cpu才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep方法并不会释放锁。wait是 Object 类的方法,对此对象调用 wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出 notify 方法(或 notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行
2020-10-23 10:51:52 174
transferlearning_code.zip
2020-07-18
JAVA面试题.zip
2020-06-10
历年CVPR的论文及代码.rar
2020-06-09
生成对抗网络综述:算法、理论与应用.rar
2020-06-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人