自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 排序算法总结

冒泡排序最坏和平均情况时间复杂度O(n^2),最好情况只扫描一次发现以是顺序排列,时间复杂度为O(n)空间复杂度O(1)两个元素比较后决定是否换位置,不会改变原来排序的顺序因此为稳定排序适用于数据量少和已经部分数据排过序 public static void bubble(int[] arr){ int len = arr.length; int temp; int flag; //从小到大排列 for (int

2021-11-12 16:16:48 284 1

原创 父类构造函数调用子类重写函数

先看下面这段代码,运行后会输出什么结果呢?public class Polymorphic { static class Father{ public int money = 1; public Father(){ money = 2; show(); } public void show() { System.out.println("father: $"

2021-10-28 15:00:37 1186

原创 JVM垃圾收集相关的常用参数

JVM常规参数-Xms:Java堆初始大小-Xmx:Java堆最大值-Xmn:Java堆新生代容量-Xss:虚拟机栈内存容量-XX:SurvivorRatio Eden与Survivor区的比例-XX:PretenureSizeThreshold 晋升老年代对象大小,大于该值的对象直接在老年代分配,只对Serial和 ParNew有效-XX:MaxTenuringThreshold 晋升老年代对象年龄-Xoss:本地方法栈大小(HotSpot不区分虚拟机栈和本地方法栈,所以

2021-10-27 17:17:04 381

原创 LeetCode题解:下一个数

下一个数下一个数。给定一个正整数,找出与其二进制表达式中1的个数相同且大小最接近的那两个数(一个略大,一个略小)。略小的数,将第一个不位于尾部的1向低位移,并将尾部的连续1向高位移,也就是从低位向高位找到第一次出现的10,互换位置,并且将该位置右侧的1都移至高位11001110111010001111100111011100111100略大的数,将第一个不位于尾部的0置为1,右侧第一个1置为0,并将后续的1都移至低位,也就是从低位向高位找到第一次出现的01,互换位置,并且将该位置右侧的

2021-10-26 21:51:12 185

原创 LeetCode题解:求和路径

求和路径给定一棵二叉树,其中每个节点都含有一个整数数值(该值或正或负)。设计一个算法,打印节点数值总和等于某个给定值的所有路径的数量。注意,路径不一定非得从二叉树的根节点或叶节点开始或结束,但是其方向必须向下(只能从父节点指向子节点方向)。遍历二叉树的节点当作根节点查找路径/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; *

2021-10-26 15:45:48 86

原创 LeetCode题解:检查子树

检查子树检查子树。你有两棵非常大的二叉树:T1,有几万个节点;T2,有几万个节点。设计一个算法,判断 T2 是否为 T1 的子树。如果 T1 有这么一个节点 n,其子树与 T2 一模一样,则 T2 为 T1 的子树,也就是说,从节点 n 处把树砍断,得到的树与 T2 完全相同。方法一:序列化前序遍历,在遇到null节点时字符串添加空格,这样可唯一地确定一颗树,确定s2是否是s1的字串即可/** * Definition for a binary tree node. * public cl

2021-10-26 14:26:05 152

原创 LeetCode题解:首个共同祖先

首个共同祖先设计并实现一个算法,找出二叉树中某两个节点的第一个共同祖先。不得将其他的节点存储在另外的数据结构中。注意:这不一定是二叉搜索树。两个节点在树中的位置有两种情况:两个节点都在其中某个节点为根的子树中两个节点分别在第一个共同祖先的左右子树中从底向上进行遍历,设置boolean值 left 和 right,left 表示当前root的左子树是否包含节点 p 或 q,right 表示右子树是否包含节点 p 或 q:left 和 right 均为true ,为情况2,当前

2021-10-26 13:37:54 211

原创 Springboot项目中com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException问题解决

在最近的Springboot项目中,在向数据库添加数据时,报出了com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException的错误,这是说sql语句有语法错误,但是我是直接调用继承自BaseMapper<>的insert方法,并没有自己写sql语句,在反复检查无果后打算自己写insert方法,这个时候才发现是因为我在命名时没有注意,将数据库表命名为order,与sql中的关键词重复,导致出现语法错误,在数据库表名和数据库字段命名时一定要注意,

2021-10-22 13:26:21 1058

原创 LeetCode题解:递归乘法

递归乘法递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。方法一:乘法转加法A*B 可转化为 B 个 A相加,为了减少加法的运算,选择较大的数进行相加,例如:9 * 3 = 9 + 9 * 2​ = 9 + 9 + 9 * 1class Solution { public int multiply(int A, int B) { int temp; if (A < B){

2021-10-20 11:39:27 648

原创 如何在IDEA中配置启用npm命令

1. 下载nodejs并安装下载地址:https://nodejs.org/dist/v8.9.4/node-v8.9.4-x64.msi默认安装即可,可自定义安装位置2. 添加环境变量nodejs的环境变量会在安装时自动添加,如果没有需要手动添加。3. 修改IDEA中setting设置将Terminal中的Shell path修改为 C:\Windows\System32\cmd.exe做完以上操作重启电脑即可。成功后效果图:PS:我在下载完nodejs后使用node -v指令正

2021-10-19 11:39:05 17563

原创 运行VS项目出现丢失OPENGL.dll问题

今天在运行新的vs项目时出现“无法启动此程序,因为计算机中丢失OPENGL.dll。尝试重新安装该程序以解决此问题。”,但之前的vs项目没有出现过该问题,后来发现与之前项目的不同之处在于这次引用的是glut的库,在添加lib文件时,习惯性地同时添加了glut.lib和glut32.lib,导致链接器首先寻找OPENGL.dll,因此报错,将glut.lib删除后即可正常运行。...

2021-10-13 10:48:06 550 2

原创 单例模式的实现方式

单例模式饿汉式(线程安全)比较常用的方式,但在类装载时就实例化instance,在单例模式中通常都是调用getInstance方法,但不能确定是否有其他方式导致类装载,容易产生垃圾对象。public class Singleton{ private static Singleton instance = new Singleton(); private Singleton(){} publice static Singleton getInstance(){

2021-10-12 10:15:47 34

原创 LeetCode题解:一次编辑

一次编辑字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。首先比较两个字符串长度,如果长度相差大于1,直接返回false。定义两个指针分别遍历两个字符串,定义count记录可编辑的次数最多为1。当遍历到的字符不相等时count减1,count < 0时返回false,同时判断两个字符串是否相等,相等则继续遍历,不相等时,将较短字符串的索引向前移一位,即跳过长字符串中不相等的字符,继续比较。class S

2021-10-10 11:08:34 259

原创 LeetCode题解:最小差

最小差给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差。首先对两个数组进行排序,利用双指针计算差值class Solution { public int smallestDifference(int[] a, int[] b) { Arrays.sort(a); Arrays.sort(b); int i = 0; int j = 0; long min = Lo

2021-10-10 11:08:20 302

原创 LeetCode题解:不同路径

不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wVEpyDne-1633835154084)(C:\Users\日华\AppData\Roaming\Typora\typora-user-images\image-20211010105239484.

2021-10-10 11:06:18 56

原创 LeetCode题解:幂集

幂集幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。说明:解集不能包含重复的子集。方法一:逐步添加{a,b}为{a,b,c}的子集,对于新增的元素c,可在{a,b}的所有子集中加上c,由此可获得 {a,b,c}的所有子集。class Solution { public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> res = new

2021-10-09 16:38:09 188

原创 LeetCode题解:迷路的机器人

迷路的机器人设想有个机器人坐在一个网格的左上角,网格 r 行 c 列。机器人只能向下或向右移动,但不能走到一些被禁止的网格(有障碍物)。设计一种算法,寻找机器人从左上角移动到右下角的路径。网格中的障碍物和空位置分别用 1 和 0 来表示。返回一条可行的路径,路径由经过的网格的行号和列号组成。左上角为 0 行 0 列。如果没有可行的路径,返回空数组。class Solution { public List<List<Integer>> pathWithObstacles

2021-10-09 16:37:29 235

原创 LeetCode题解:括号

括号括号。设计一种算法,打印n对括号的所有合法的(例如,开闭一一对应)组合。说明:解集不能包含重复的子集。画一棵2*n高的满二叉树,列出所有的组合添加限制条件进行筛选,")" 不能大于"(" 数量,且分别不能大于n,满足左右括号数量相等且刚好为n时加入list中每次分支遍历结束后要回溯class Solution { private List<String> ans; public List<String> generateParenthesis(i

2021-10-09 15:49:08 79

原创 LeetCode题解:井字游戏

井字游戏设计一个算法,判断玩家是否赢了井字游戏。输入是一个 N x N 的数组棋盘,由字符" ",“X"和"O"组成,其中字符” "代表一个空位。以下是井字游戏的规则:玩家轮流将字符放入空位(" “)中。第一个玩家总是放字符"O”,且第二个玩家总是放字符"X"。"X"和"O"只允许放置在空位中,不允许对已放有字符的位置进行填充。当有N个相同(且非空)的字符填充任何行、列或对角线时,游戏结束,对应该字符的玩家获胜。当所有位置非空时,也算为游戏结束。如果游戏结束,玩家不允许再放置字符。

2021-10-09 15:48:27 763

原创 LeetCode题解:节点间通路

节点间通路节点间通路。给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。为了比较有环进入死循环,定义boolean数组标记路径已走过逆序查找,从目标点开始查找到开始点的路径class Solution { private boolean[] visited; public boolean findWhetherExistsPath(int n, int[][] graph, int start, int target) { visited = new b

2021-10-09 15:47:21 249

原创 LeetCode题解:交换数字

交换数字编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。方法一:加法class Solution { public int[] swapNumbers(int[] numbers) { numbers[0] += numbers[1]; numbers[1] = numbers[0] - numbers[1]; numbers[0] = numbers[0] - numbers[1]; retur

2021-10-09 15:39:26 74

原创 LeetCode题解:绘制直线

绘制直线绘制直线。有个单色屏幕存储在一个一维数组中,使得32个连续像素可以存放在一个 int 里。屏幕宽度为w,且w可被32整除(即一个 int 不会分布在两行上),屏幕高度可由数组长度及屏幕宽度推算得出。请实现一个函数,绘制从点(x1, y)到点(x2, y)的水平线。给出数组的长度 length,宽度 w(以比特为单位)、直线开始位置 x1(比特为单位)、直线结束位置 x2(比特为单位)、直线所在行数 y。返回绘制过后的数组。该题主要在于理解题意,length指总共有多少个int,w/32指一行有

2021-10-09 15:38:36 133

原创 LeetCode题解:环路检测

环路检测给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。若环不存在,请返回 null。方法一:使用哈希表使用表记录遍历过的节点,当遇到之前的节点时则为环路的开头节点。public class Solution { public ListNode detectCycle(ListNode head) { ListNode pos = head; Set<ListNode> set = new HashSet<ListNode&g

2021-10-09 15:37:22 182

原创 LeetCode题解:合法二叉搜索树验证

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-10-09 15:32:48 76

原创 python使用

python安装cv2:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-pythonpython安装cv2labelimg使用:目录跳到labelimg-master,输入命令行:pyrcc5 -o resources.py resources.qrcpython LabelImg.py

2021-10-09 15:30:23 19

jdk api 1.8_google.chw

jdk1.8中文手册

2021-10-09

空空如也

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

TA关注的人

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