自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 LeetCode N0.1518 换酒问题

小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。请你计算 最多 能喝到多少瓶酒。示例 1:输入:numBottles = 9, numExchange = 3输出:13解释:你可以用 3 个空酒瓶兑换 1 瓶酒。所以最多能喝到 9 + 3 + 1 = 13 瓶酒。示例 2:输入:numBottles = 15, numExchange = 4输出:19..

2021-12-30 17:55:49 163

原创 关于算法中复杂度log(n) 的理解

的算法复杂度,典型的比如二分查找。设想一堆试卷,已经从高到底按照分数排列了,我们现在想找到有没有59分的试卷。怎么办呢?先翻到中间,把试卷堆由中间分成上下两堆,看中间这份是大于还是小于59,如果大于,就留下上面那堆,别的丢掉,如果小于,就留下下面那堆,丢掉上面。然后按照同样的方法,每次丢一半的试卷,直到丢无可丢为止。假如有32份试卷,你丢一次,还剩16份 ,丢两次,还剩下8 份,丢三次,就只剩下4份了,可以这么一直丢下去,丢到第五次,就只剩下一份了。而 。也就是我们一次丢一半,总要丢到只有一份的时...

2021-12-06 20:42:27 2340

原创 LeetCode N0.1816 截断句子

链接:力扣句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格。每个单词仅由大小写英文字母组成(不含标点符号)。例如,"Hello World"、"HELLO" 和 "hello world hello world" 都是句子。给你一个句子 s​​​​​​ 和一个整数 k​​​​​​ ,请你将 s​​ 截断 ​,​​​使截断后的句子仅含 前 k​​​​​​ 个单词。返回 截断 s​​​​​​ 后得到的句子。示例 1:输入:s = "Hello how are you .

2021-12-06 20:19:00 147

原创 IDEA一键清理无效引用

2021-10-12 16:46:58 317

原创 RabbitMQ Java实现demo

代码运行需先安装环境依赖windows环境下:先安装Erlang页面:https://www.erlang.org/downloads下载链接:https://erlang.org/download/otp_win64_24.1.exe安装完配置环境变量ERLANG_HOME C:\Program Files\erl-24.1然后在path变量里添加 %ERLANG_HOME%/bin然后打开cmd命令框,输入erlEshell V12.1 (abort with ^G)..

2021-10-07 23:03:30 639

原创 MQTT Java代码demo,实现消息收发

需安装mosquitto客户端,并将服务启动,服务默认端口为1883client-接收端代码package com.liang.demo.MQTT;/** * @Author Li Yang * @Created on 2021/10/3. * mqtt-消息接受客户端 */import java.util.concurrent.ScheduledExecutorService;import org.eclipse.paho.client.mqttv3.MqttClient;.

2021-10-07 22:57:40 351

原创 LeetCode no.716 第二高的薪水&MySQL IFNULL函数的使用

链接:https://leetcode-cn.com/problems/second-highest-salary/编写一个 SQL 查询,获取 Employee表中第二高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述Employee表,SQL查询应该返回200 作为第二高的薪水。...

2021-09-10 18:28:48 118

原创 Java-关于链表ListNode的基本使用

public class listNodeDemo { public static void main(String[] args) { //声明链表 ListNode firstNode = new ListNode(1); ListNode secondNode = new ListNode(2); ListNode thitdNode = new ListNode(3); ListNode fourthNode .

2021-09-05 00:11:33 1882

原创 LeetCode 剑指 Offer 22. 链表中倒数第k个节点

https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。public class lcSword22 { public static void

2021-09-02 22:57:05 65

原创 LeetCode no.175 组合两个表

编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:FirstName, LastName, City, State

2021-09-01 23:20:17 217

原创 Java中与,或,逻辑与,逻辑或的区别

&&逻辑与 也叫做短路与 因为只要当前项为假,它就不往后判断了,直接认为表达式为假||逻辑或 也叫做短路或 因为只要当前项为真,它也不往后判断了,直接认为表达式为真&与运算符 左右两边都为真,则结果为真,若一边为假,则结果为假|或运算符 左右两边有一边为真,则结果为真,两边都为假,则结果为假...

2021-08-31 19:42:58 1414

原创 Java基础-栈STACK

栈是Vector的一个子类,它实现了一个标准的后进先出的栈。堆栈只定义了默认构造函数,用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。

2021-08-31 19:11:46 278

原创 选择排序-Java实现

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。

2021-08-27 19:13:28 294

原创 冒泡排序-java实现

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

2021-08-25 15:11:44 246

原创 Leetcode no.14 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。提示:1 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成这个题..

2021-08-25 14:33:09 251

原创 LeetCode no.832 翻转图像

给定一个二进制矩阵A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转[1, 1, 0]的结果是[0, 1, 1]。反转图片的意思是图片中的0全部被1替换,1全部被0替换。例如,反转[0, 1, 1]的结果是[1, 0, 0]。示例 1:输入:[[1,1,0],[1,0,1],[0,0,0]]输出:[[1,0,0],[0,1,0],[1,1,1]]解释:首先翻转每一行: [[0,1,1],[1,0...

2021-08-18 19:02:37 209

原创 LeetCode no.551 学生出勤记录 I

public class lt551 { public static void main(String[] args) { System.out.println(checkRecord("PPALAL")); } //很垃圾的解法,复杂且笨,注释都不想写了 public static boolean checkRecord(String s) { int A = 0; int L = 1; String[].

2021-08-17 22:00:06 228

原创 LeetCode no.7 整数反转

7. 整数反转 https://leetcode-cn.com/problems/reverse-integer/public class lt7 { public static void main(String[] args) { int reverse = reverse(1534236469); System.out.println(reverse); } public static int reverse(int x) { .

2021-08-16 20:14:31 237

原创 MySQL中关于函数substring的用法

SELECT * FROM `user` where type =1 and substring(id,1,1) != '1';查询在user表中type为1且开头第一位不等于1的数据需要注意的是,mysql的substring方法中的字符下标参数为从1开始

2021-08-12 19:04:43 594

原创 查询表中两条记录的时间间隔

表结构如下:需求为查询表中两个id对应数据的时间字段的差值SELECT abs( TIMESTAMPDIFF( DAY, ( SELECT create_time FROM `person` WHERE id = 1 ), ( SELECT create_time FROM `person` WHERE id = 3 ) ) )ABS为取绝对值,取时间间隔,因为不知道id

2021-08-11 18:47:23 626

原创 LeetCode no.182 查找重复的电子邮箱

https://leetcode-cn.com/problems/duplicate-emails/编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+根据以上输入,你的查询应返回以下结果:+---------+| Email |+---.

2021-08-11 18:32:17 464

原创 LeetCode no.1929 数组串联

给你一个长度为 n 的整数数组 nums 。请你构建一个长度为 2n 的答案数组 ans ,数组下标 从 0 开始计数 ,对于所有 0 <= i < n 的 i ,满足下述所有要求: ans[i] == nums[i] ans[i + n] == nums[i]具体而言,ans 由两个 nums 数组 串联 形成。返回数组 ans 。示例 1:输入:nums = [1,2,1]输出:[1,2,1,1,2,1]解释:数组 ans 按下述方式形成:- an...

2021-08-11 17:17:50 235

原创 Linux 查看日志

cat web-info.log |grep "error"grep 'error' web-info.log两个命令都是根据指定字段查询指定日志grep "error" *在当前目录下所有文件中查找包含指定字段的行tail-f web-info.log循环展示日志grep "error: null" /bin/logs/serverInfo.log -A 5 -B 5 | wc -l根据关键字查询前后五行 ...

2021-01-19 17:49:56 465

原创 SpringBoot启动的几种方式

运行带有main方法的Application启动类启动; 通过Cmd控制台或Linux命令行以 java -jar 的方式启动; 通过spring-boot-plugin的方式(搭配maven插件,使用maven命令)启动;

2020-11-11 18:26:58 260

原创 [面试题]创建4个线程,其中两个对j加一,两个对j减一

package cn.thread.test; /* * 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 */public class ThreadTest1 { private int j; public static void main(String[] args) { ThreadTest1 tt = new ThreadTest1(); Inc inc = tt.new Inc(); Dec dec = tt.new Dec();.

2020-11-11 18:16:21 741

原创 Spring SpringMvc SpringBoot SpringCloud的区别

Spring是一个一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(SpringMvc)、业务层(Ioc)、持久层(jdbcTemplate)等都提供了多种配置解决方案; SpringMvc是Spring基础之上的一个MVC框架,主要处理web开发的路径映射和视图渲染,属于spring框架中WEB层开发的一部分; SpringBoot相对于SpringMvc来说,更专注于开发后端接口,简化了项目开发配置流程,可以快速开发单个微服务。SpringBoot

2020-11-11 17:57:02 355

原创 Volatile关键字的作用

1.内存可见性某线程对 volatile 变量的修改,对其他线程都是可见的。即获取 volatile 变量的值都是最新的。Java 中存在一种原则——先行发生原则(happens-before)。其表示两个事件结果之间的关系:如果一个事件发生在另一个事件之间,其结果必须体现。volatile 的内存可见性就体现了该原则:对于一个 volatile 变量的写操作先行发生于后面对这个变量的读操作。例:volatile static int a = 0;//线程 A 在其工作内存中写入变量 a 的新值

2020-11-11 17:51:53 823

原创 MyBatis的xml中 #和$的区别

1. #是将传入的值当做字符串的形式select id,name,age from student where id =#{id} 当前端把id值1,传入到后台的时候,就相当于select id,name,age from student where id ='12 $是将传入的数据直接显示生成sql语句select id,name,age from student where id =${id} 当前端把id值1,传入到后台的时候,就相当于 select i...

2020-11-11 17:42:17 1520

原创 MySql 分页 limit关键字

mysql> SELECT FROM table LIMIT 5,10; // 检索记录行 6-15 //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1;mysql> SELECT FROM table LIMIT 95,-1; // 检索记录行 96-last. //如果只给定一个参数,它表示返回最大的记录行数目;mysql> SELECT FROM...

2020-11-11 17:25:06 457

原创 记一次十分惨痛且尴尬的bug修复经历

2019年8月1日,周四下午,项目经理突然告诉我说:之前能用的车辆控制接口现在都报错了,车辆上传的日志解析也全都解析失败!然后我看日志,发现确实是解析失败,当时第一反应就是报文组错了吧,因为这套代码已经在线上运行好几个月,解析失败这个问题很久都没有出现过了,然后奇怪的是车辆控制的代码返回的错误和报文解析的错误是同一处,都是数组越界.看到这里,我认为应该是车机系统做了升级,导致和之前的报文产...

2020-08-13 17:36:56 391

空空如也

空空如也

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

TA关注的人

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