自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

trancybao的博客

菜鸟程序员的漫漫进阶路

  • 博客(64)
  • 资源 (7)
  • 收藏
  • 关注

原创 【LeetCode】1926.迷宫中离入口最近的出口

class Solution { public int nearestExit(char[][] maze, int[] entrance) { // 初始化可走的四个方向 List<int[]> step = new ArrayList<>(); step.add(new int[]{0, 1}); step.add(new int[]{0, -1}); step.add(new int[]{.

2021-09-15 09:52:43 219

原创 【LeetCode】236.二叉树的最近公共祖先

class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { // 找不到或者根节点就是p或q if (root == null || root == p || root == q) { return root; } TreeNode left = lowestCommonAncest.

2021-09-06 10:10:04 121

原创 【LeetCode148】排序链表

对一个链表排序,归并思路class Solution { public ListNode sortList(ListNode head) { if (head == null) { return head; } ListNode tail = head; while (tail.next != null) { tail = tail.next; } r

2021-09-05 23:17:03 140

原创 windows下Redis中文乱码解决方案

在windows下, 通过spring与RedisTemplate整合使用时,redis储存了含中文的值,就会出现如下情况有中文的地方就会出现这种很整齐的代码串,这时我们只需在启动redis时加上--raw参数,再取出值,就会出现如下情况能显示中文了,但是是无意义字符,这时是由于cmd窗口编码不一致导致的,我们只需在当前cmd窗口执行CHCP 65001,出现以下提示然后再用redis-cli --raw进去redis客户端,取出值这时就显示正常了...

2021-08-14 14:14:10 1329

原创 【LeetCode】105. 从前序与中序遍历序列构造二叉树

class Solution { /** * 前序[根,[左子树], [右子树]] * 中序[[左子树],根,[右子树]] */ //用HashMap来快速定位中序遍历根节点 Map<Integer, Integer> indexMap; public TreeNode myBuildTree(int[] preorder, int[] inorder, int pre_left, int pre_right, int in_l.

2021-08-08 23:37:15 57

原创 【LeetCode】142. 环形链表 II

给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。public class Solution { public ListNode detectCycle(ListNode head) { if (head == null || head.next == null) { return null; } ListNode fast = head; ListNode slow = hea..

2021-08-05 22:14:34 46

原创 【LeetCode】56. 合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。class Solution { public int[][] merge(int[][] intervals) { if (intervals.length == 1) { return intervals; }

2021-08-04 22:12:07 68

原创 【LeetCode】46. 全排列

给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]解法:class Solution { public List<List<Integer>> permute(int[] nums) { // 存结果 List<List&l...

2021-08-03 22:37:11 93

原创 Git常用操作

1.初始化Git(创建git隐藏文件夹)git init2.添加改动的文件(.代表该目录下所有变化)git add .3.提交改动git commit -m "说明"4.添加远程仓库,设置别名为origin(如果没有添加)git remote add origin repostryURL5.推送到远程仓库master分支git push -u origin master6.创建名为master的分支git branch master7.切换到mas

2021-08-02 13:55:44 50

原创 【LeetCode】两数之和

题目:给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...

2021-06-19 10:46:02 97

原创 跨域请求nginx图片

为了能在HTML中访问阿里云服务器的静态图片资源,用nginx代理来实现 server { listen xx; server_name xx.xx.xx.xx; location / { root imagePath; } }但是在对其进行base64转码时,遇到了跨域问题,于是寻求解决方案,解决方法是在其中加 add_header Access-C.

2021-05-18 20:02:15 460

原创 VUE图片转Base64

// 把图片转为base64格式 imageToBase64 () { let that = this //防止function里指代不明确 let image = new Image() image.crossOrigin = '' image.src = this.imageUrl image.onload = function () { that.base64 = that.$getBase64I...

2021-05-18 09:48:12 3675

原创 linux启动终止jar

1.启动jarjava -jar xxx.jarnohup java -jar xxx.jar &nohup java -jar xxx.jar >log 2>&1 &2.终止jarps -ef|grep javakill -9 175799

2021-05-12 22:19:46 99

转载 Centos7 启动jar包详细步骤

Centos7 启动jar包详细步骤1、新建jar文件夹(用来存放所有项目的jar包)2、新建项目名文件夹,里面用来存放项目jar包及log文件 1 2 3 4 5 6 7 8 #新建apired文件夹 mkdir apired #新建apired.log文件用来出入日志文件 touch apired.log #如果出现无法写去的问题,就给文件读写权限 ..

2021-03-16 20:19:49 692

原创 多线程中无法使用autowired自动注入(转载)

java的线程为了安全,是禁止注解自动注入的,解决方法就是自己写个获取器(手动new也可以)public class ApplicationContextProvider implements ApplicationContextAware { /** * 上下文对象实例 */ private static ApplicationContext applicationContext; @Override public void setApplica

2020-10-07 17:15:12 900 3

转载 Java实现后台发送及接收json数据的方法示例

Java实现后台发送及接收json数据的方法示例更新时间:2018年12月13日 11:32:36 转载作者:huxiangen 这篇文章主要介绍了Java实现后台发送及接收json数据的方法,结合实例形式分析了java针对json格式数据的传输与操作相关技巧,需要的朋友可以参考下本文实例讲述了Java实现后台发送及接收json数据的方法。分享给大家供大家参考,具体如下:本篇博客试用于编写java后台接口以及两个项目之间的接口对接功能;具体的内容如下:1.java后台给指定...

2020-10-03 21:11:48 5155 1

原创 关于Canal的表过滤配置文件无法生效的问题

Canal中的配置文件有几个坑,下面列举一下1.这里的canal.instance.defaultDatabaseName并没有什么作用,至少我没有发现让它生效的办法。2.如果要过滤数据,需要配置canal.instance.filter.regex两个一个是白名单,一个是黑名单,我这里设置只需要test_push数据库下的所有表。3.客户端的subscribe()方法会覆盖配置文件的配置,这个是配置不生效的元凶,但是我们不能直接不写这个方法,需要将其中条件改为空,直接为空默认会使用

2020-10-03 17:16:20 3091

转载 关于MySQL 在windows环境下的启动错误:1053的解决方案

关于MySQL 在windows环境下的启动错误:1053的解决方案在修改配置文件my.ini后出现该问题:如果是在修改了配置文件my.ini后出现1503的错误,那么很可能是因为在保存配置文件操作时,配置文件的编码也被改动了所引起的,因此,可以尝试如下操作:再次打开配置文件,选择另存为,然后以ANSI编码保存,再替换原有配置文件 如果因为之前的启动失败,导致MySQL服务一直处于启动状态的话,需要手动去结束mysqld.exe进程后,再尝试启动服务未修改任何配置的情况下出现该问...

2020-09-23 18:01:01 1695

原创 Spring的定时任务

@Configuration // 1.主要用于标记配置类,兼备Component的效果。@EnableScheduling // 2.开启定时任务public class WarningTask { @Autowired PersonDao personDao; @Scheduled(cron = "0/5 * * * * ?") private void configureTasks() { System.err.println("执行静态定时任务时间: " + LocalDat.

2020-09-14 19:56:12 50

原创 Ajax请求Servlet

HTML内容:<div id="warningWindow" style="display: none;"> <form> <div> <div> <div>姓名</div> <span id="name"></span> </div> <div <div>身份证号</div> <span id="sf

2020-09-14 18:17:11 1490

原创 Servlet中使用Autowired注解抛Null异常的解决方法(转载)

重写init()方法使其支持注解 @Override public void init(ServletConfig config) throws ServletException { super.init(); try { super.init(config); } catch (ServletException e) { e.printStackTrace(); } SpringBeanAuto

2020-09-13 10:42:42 221

原创 tomcat增加缓存不起作用的问题

tomcat提示缓存不足,无法将资源添加到项目的缓存中,网上大部分解决方案是这样的:在tomcat的/conf/context.xml中的<Context>中添加<!--这里单位是 KB--><Resources cachingAllowed="true" cacheMaxSize="100000" />可是我改动之后clean重新加载项目,问题并没有解决,于是自己摸索了一下,还要在workplace目录下添加,即:WorkSpace\Servers\

2020-08-03 09:02:07 769 1

原创 【LeetCode】81. 搜索旋转排序数组 II

假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,0,1,2,2,5,6]可能变为[2,5,6,0,0,1,2])。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回true,否则返回false。示例1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例2:输入: nums = [2,5,6,0,0,1,2], target = 3输出: false进阶:这是 搜索旋转排序数组的延...

2020-07-15 16:07:13 52

原创 【LeetCede】剑指 Offer 10- I. 斐波那契数列

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。解法一:普通递归(耗时高)class Solution {public: int ...

2020-07-14 17:38:12 88

原创 【LeetCode】33. 搜索旋转排序数组

假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4示例2:输入: nums = [4,5,6,7,0,1,2], ta...

2020-06-28 22:44:57 66

原创 【LeetCode】153. 寻找旋转排序数组中的最小值

假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7] 可能变为[4,5,6,7,0,1,2])。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6,7,0,1,2]输出: 0思路一:暴力法,遍历寻找最小值,稍微优化一下,当nums[i]<nums[i-1]&&nums[i]>nums[i+1]时,即为所寻思路...

2020-06-18 10:58:38 82

原创 【LeetCode】442. 数组中重复的数据

给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?示例:输入:[4,3,2,7,8,2,3,1]输出:[2,3]一、使用辅助空间(O(n))public: vector<int> findDuplicates(vector<int>& nums) { vector<

2020-06-17 20:56:56 92

原创 【LeetCode】16. 最接近的三数之和

给定一个包括n 个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3-10^3<= nums[i]<= 10^3-10^...

2020-06-08 11:18:06 74

原创 【LeeCode】43.字符串相乘

给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1和num2的长度小于110。num1 和num2 只包含数字0-9。num1 和num2均不以零开头,除非是数字 0 本身。不能使用任何标准库的大数类型(比如...

2020-06-01 09:48:44 145

原创 【LeetCode】38.外观数列

「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:1. 12. 113. 214. 12115. 1112211被读作"one 1"("一个一") , 即11。11 被读作"two 1s"("两个一"), 即21。21 被读作"one 2", "one 1"("一个二","一个一"), 即1211。给定一个正整数 n(1 ≤n≤ 30),输出外观数列的第 n 项。...

2020-05-27 22:54:34 99

原创 【LeetCode】94. 二叉树的中序遍历

一、递归方法:class Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector<int> res; vector<int> left; vector<int> right; if (root != NULL) { left = inorderTraversal(root->left); res.insert(res.end(),

2020-05-23 17:06:02 108

原创 【LeetCode】145. 二叉树的后序遍历

一、递归方法class Solution {public: vector<int> postorderTraversal(TreeNode* root) { vector<int> res; vector<int> left; vector<int> right; if (root != NULL) { left = postorderTraversal(root->left); right = postorderT

2020-05-23 10:37:25 84

原创 【LeetCode】144.二叉树的前序遍历

1.递归方法class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int> pre; vector<int> left; vector<int> right; if (root != NULL) { pre.push_back(root->val); left=preorderTraversal(root->

2020-05-21 22:37:50 98

原创 【LeetCode】19. 删除链表的倒数第N个节点

给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode* remo..

2020-05-20 15:19:45 70

原创 【LeetCode】6. Z 字形变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int...

2020-05-18 23:13:13 116

原创 【LeetCode】26. 删除排序数组中的重复项(C++)

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。一、单指针遍历求解(耗时180ms)class Solution {public: int removeDuplicates(vector<int>& nums) { if (nums.empty()) { return 0; } //遍历指针 for

2020-05-17 18:26:20 124

原创 【LeetCode】8. 字符串转换整数 (atoi)

请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个有效整..

2020-05-17 15:31:54 80

原创 【LeetCode】合并两个有序链表

方法一:穿线法class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if (l1 == NULL) { return l2; } if (l2 == NULL) { return l1; } ListNode* p = l1; ListNode* q = l2; ListNode* head ; ListNode* tail ; if (l1-&gt

2020-05-15 22:51:10 93

原创 【LeetCode】三数之和

给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]难点在于去掉重复答案方法:排序+双指针(C++)#include "pch.h"#include <io...

2020-05-15 22:45:38 67

原创 【LeetCode】20、有效的括号

给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:输入: "([)]"输出: false示例5:输入: "{[]}"输出: true bool i...

2020-05-13 11:53:51 85

坦克大战源码(Swing贴图)

基于JAVA Swing的贴图版坦克大战,模仿红白机,只做了第一关,没有完全做完,读者有时间可自行完善

2020-10-03

中国象棋(人机对战)

文件包含源码和打包后的exe,可直接游玩,也可参考源码学习。本程序使用QT5.13.1在win10下编写,对应版本可直接导入。棋盘采用一维数组,基于博弈树,实现了剪枝优化、置换表、历史启发、迭代深化、宁静搜索等技术,以实现功能为主,界面比较简陋,没有改动的情况下玩家先走,采用迭代深化,中等难度电脑走一步花费10秒钟。

2020-03-11

QT象棋(人机对战)历史启发优化Alpha-Beta剪枝

象棋界面是通过网络课程资源学习制作的,使用QT5.13.1编写,使用对应版本导入pro文件就能运行,利用搜索树Alpha-Beta剪枝实现了人机对弈,并且使用了历史启发进行优化,搜索层数设为五层,每步一般不超过半分钟,本人水平有限,若有不妥之处,还请指正。(由于积分系统自主调整,若本资源积分过高,请下载我另一个版本的象棋,优化更好,功能更完整https://download.csdn.net/download/trancybao/12241653)

2019-12-23

人机对战五子棋(有禁手)

利用Java的Swing写的界面,通过博弈树实现人机对战,Alpha-Beta剪枝优化了速度,这里搜索深度设为6,下棋速度还可以接受,考虑了三三、四四、长连禁手。项目被打包成了exe,直接双击exe文件即可启动界面,勾选计算机先行则计算机执黑先行,点击重新开始即可开始对战。源码解压AIFive.jar文件即可看到。

2019-11-27

JAVA单机版五子棋

单机版五子棋,利用JAVA的Swing写界面,加入贴图,实现两人黑白棋轮流下子,无禁手,基本实现了所有功能(没有人机功能,需要人机对战的看我另一个版本的五子棋)

2019-11-18

JAVA小游戏----俄罗斯方块

Swing版俄罗斯方块,只实现基本功能,用以熟悉JAVA的基本操作,激发学习兴趣,后续功能读者自行思考添加

2018-06-25

JAVA小游戏-贪吃蛇

Swing版贪吃蛇,实现了基本的功能,主要用来熟悉java的用法,后续功能读者自行思考添加,新手代码拙劣还请见谅

2018-06-19

空空如也

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

TA关注的人

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