自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数位之积

题目:现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。输入例子1:36输出例子1:49输入例子2:100输出例子2:455思想: 递归package edu.LeetCode.三;/** * 现给定任意整数 n,请寻找并输出最小的正整数 m(m>9), * 使得 ...

2020-04-17 14:00:48 809

原创 数组中重复的数字

题目找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3思路:初始化map集合向集合里面添加数据如果集合里面已经有这个数字了,就返回,否则就添加进去...

2020-04-16 12:07:43 131

原创 翻转单词顺序

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello...

2020-04-13 12:24:50 193

原创 事务

1.事务一个数据库是一个被视为单一的工作单元的操作序列,这些操作应该要么完整的执行,要么完全不执行。事务管理是一个重要组成部分,RDBMS(关系数据库管理系统)面向企业应用程序,以确保数据的完整性和一致性。1.1 事务四要素原子性:事务应该是一个单独单元的操作,这意味着整个序列操作要么成功,要么失败;一致性:事务开始前和结束后,数据库的完整性约束不能被破坏。比如A向B转账,不可能A扣了钱...

2020-04-11 11:50:16 113

原创 括号生成

题目:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n = 3输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]思想:递归package edu.LeetCode.三;import java.util.ArrayList;import java.util.Lis...

2020-04-09 13:42:11 158

原创 调整数组顺序使奇数位于偶数前面

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。提示:1 <= nums.length <= 500001 <= nums[i] <= 10000法一:package e...

2020-04-08 13:48:42 75

原创 链表中的倒数第k个节点

题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000思路:首先设置两个指针,让第一个指针先走k步;第二个指针从head开始,与第一个指针同时出发...

2020-04-07 13:04:02 90

原创 第一个只出现一次的字符

题目:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。示例:s = “abaccdeff”返回 “b”s = “”返回 " "限制:0 <= s 的长度 <= 50000思路:利用LinkedHashMap记录字符出现的次数,最后返回出现次数为1的字符。需要注意的是LinkedHashMap也是一个Hashmap,但其内部维持了一个双向链表,...

2020-04-06 11:43:50 85

原创 滑动窗口的最大值

题目:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 ...

2020-04-05 16:23:07 70

原创 0~n-1中缺失的数字

题目:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例 2:输入: [0,1,2,3,4,5,6,7,9]输出: 8思路:判断当前的数字是否与当前所在的位置相等,如果相等则说明之前并没有缺失,否则返回当前数字的位置即可...

2020-04-03 12:24:22 130

原创 顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= ...

2020-04-01 13:34:23 100

原创 阶乘后的0

题目:给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。思路:要计算出位数有多少0,直接计算出5是那些数的因子。package edu.LeetCode.二;/** * ...

2020-03-31 11:31:50 88

原创 多数元素

题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。思路:先将给定的数组进行排序,由题意可知多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素,那么此元素必定是中间元素,所以直接返回中间元素即可得到多数元素。package edu.LeetCode.二;impor...

2020-03-27 12:18:53 103 1

原创 链表的中间节点

题目:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.ne...

2020-03-26 10:25:36 78

原创 使数组唯一的最小增量

给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。返回使 A 中的每个值都是唯一的最少操作次数。示例 1:输入:[1,2,2]输出:1解释:经过一次 move 操作,数组将变为 [1, 2, 3]。示例 2:输入:[3,2,1,2,1,7]输出:6解释:经过 6 次 move 操作,数组将变为 [3, 4, 1, 2, 5, 7]。可以看出 5 次或...

2020-03-24 10:55:55 144

原创 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解法1:利用hashmappackage edu.LeetCode.二;import java.util.Has...

2020-03-22 12:10:50 68

原创 最长回文串

题目:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:“abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。思路:先利用hashmap统计每个字符出现的次数;找出字...

2020-03-21 13:10:14 77

原创 记录字符出现的次数

package edu.LeetCode.二;import java.util.HashMap;import java.util.Map;public class 记录字符出现次数 { // public int longestPalindrome(String s){ public static void main(String[] args) { ...

2020-03-20 13:53:16 165

原创 矩形重叠

矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:true示例 2:输入:rec1 =...

2020-03-19 12:35:54 81

原创 验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false思路:双指针package edu.LeetCode;/** * 给定一个字符串,验证它是...

2020-03-18 13:48:43 98

原创 买股票的最佳时机II

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获...

2020-03-17 13:52:10 40

原创 买股票的最佳时机

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是...

2020-03-16 11:32:57 44

原创 二叉树的层次遍历

给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其自底向上的层次遍历为:[[15,7],[9,20],[3]]import java.util.*;public class TreeNode { ...

2020-03-15 12:11:39 142

原创 二叉树的最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。思想:BFS算法package edu.LeetCode.二叉树的最大深度;import java.util.Linke...

2020-03-13 11:37:26 76

原创 对称二叉树

题目:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3思路:递归package edu.LeetCode.对称的树;public class Solution...

2020-03-12 10:42:35 49

原创 相同的树

给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。package edu.LeetCode.相同的树;public class Solution { //p第一个树 q第二个树 public boolean isSameTree(TreeNode p, TreeNode q) { if(p ==...

2020-03-11 12:27:26 58

原创 合并两个有序数组

题目:给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。public class 合并两个有序数组 { public static ...

2020-03-10 09:55:52 97

原创 HTTP协议

1.HTTP简介首先http协议是超文本传输协议(英文:HyperText Transfer Protocol),是因特网上应用最为广泛的网络传输协议,是基于TCP/IP通讯协议来传递数据(HTML文件、图片、查询结果等)。2.HTTP工作原理HTTP工作于客户端-服务器端架构上,浏览器作为HTTP客户通过URL向WEB服务器发送请求。三点注意事项:HTTP是无连接的:每次连接只处理一...

2020-02-28 11:33:04 83

原创 删除排序链表中的重复元素

1.题目描述给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。2.输入、输出示例示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->33.代码实现public class 删除排序链表中的重复元素 { public static ListNode...

2019-11-17 18:38:17 64

原创 KMP算法

KMP算法是解决字符串匹配的常用算法之一,也就是在主串中的子串定位问题,如果子串在一个主串的T位置出现,就返回它的具体位置。1.最基础的模式匹配方法(BF算法)思路:从左到右一个一个的匹配,如果这个过程中有某个字符不匹配,将子串向右移动一位,继续从左到右一一匹配。当匹配到第四个字符的时候,匹配失败,子串后移,继续匹配第一位匹配失败 子串继续后移第一位匹配失败 子串继续后移直到匹配...

2019-11-03 15:51:14 89

原创 用servlet完成对数据库中图书信息的查询

1.在数据库里面建一个t_book表SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for t_book-- ----------------------------DROP TABLE IF EXISTS `t_book`;CREATE TABLE `t_book` ( `id...

2019-10-30 13:28:38 2527 1

原创 进程的同步与通信

1.临界资源:一次只能允许一个进程访问的资源;临界区:访问临界资源的代码段,不允许多个并发进程交叉执行的代码段2.进程之间的制约关系(1)由于进程之间共享资源而引起的间接制约关系(互斥)(2)由于进程之间相互协作而引起的直接制约关系(同步)//当且仅当一个进程执行完毕,另一个进程才能被执行3.如何实现临界区的互斥访问?在临界区之前加进入区,在临界区之后加退出区,在进入区中先检查临界资源...

2019-09-27 15:40:15 104

原创 ARP地址解析协议

地址解析协议(ARP,Address resolution protocol)是获取物理地址的一个TCP/IP协议,某节点的IP地址的ARP请求被广播到网络上后,这个节点会收到确认其物理位置的应答,只有这样的数据包才能被传送出去。1.什么是ARPARP是地址解析协议,在IP-以太网中,当一个上层协议要发包的时候,有了节点的IP地址,ARP就能提供该节点的MAC地址。2.ARP的作用网络层以...

2019-09-21 20:15:20 239

原创 Spring注解

1.PropertySource注解读取配置,注解当前类,参数为对应的配置文件路径,使用这种方式加载配置文件,可以不用在xml中配置PropertiesFactoryBean引入jdbc.properties作用:用来指定properties文件的位置属性:value:指定文件的名称和路径关键字:classpath,表示类路径属性文件jdbc.driverClass=com.mysq...

2019-09-17 15:49:51 78

原创 AOP面向切面编程

1.什么是面向切面编程AspectOrientedProgramming(AOP),面向切面编程,主要面对的处理过程中的某个步骤或阶段,已获得逻辑过程中各部分之间低耦合性的隔离效果。(即是把某个事物在某个方面的功能提取出来与一批对象进行隔离,这样就与一批对象之间的耦合性降低了,可以就某个功能进行编程)...

2019-09-17 10:36:47 105

原创 操作系统(一)

1.什么是操作系统操作系统是为了达到方便用户和提高资源利用率的目的而设计的,控制和管理计算机硬件和软件资源,合理的组织计算机工作流程的程序集合。2.操作系统的形成(1)人工操作阶段a.操作方式由程序员将事先已穿孔的纸带或卡片,装入纸带输入机,再启动他们将纸带上的程序和数据输入个计算机,然后在启动计算机运行,仅当程序运行完毕并取走计算结果后,才允许下一个用户上机。...

2019-09-16 18:55:26 101

原创 【Java】线程学习笔记

1.线程的生命周期(1)新建状态:当线程对象创建后即进入了新建态;(2)可运行状态(就绪态):当调用线程的start()方法,线程即进入就绪状态,此时只是说明线程已经做好了准备,随时等待CPU调用执行,并不是说执行了start方法此线程就会立即执行;(3)运行状态:当CPU调用处于就绪状态的线程时,此时线程才是真正的执行,即进入运行状态(也就是说:就绪状态是线程进入到运行状态的唯一入口,线程...

2019-06-27 15:09:39 72

原创 【Java】字典排序

1.字典排序定义字典排序是一种对于随机变量形成序列的排序方法,其方法是按照字母排列顺序,或数字顺序由小到大形成的的序列。2.代码实现import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.*;public class 字典排序1 { public stati...

2019-06-26 09:54:41 16766

原创 【Java】Java.lang包中不能被继承的类

Java.lang包中不能被继承的类public final class Bytepublic final class Characterpublic static final class Character.UnicodeBlockpublic final class Classpublic final class Compilepublic final class Doublep...

2019-06-25 16:47:54 223

原创 【Java】进程与线程

一、进程与线程的概念1.进程:进程是并发执行的程序在执行的过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。2.线程:线程是进程的一个执行单元,是比进程小的独立运行单位。一个程序至少一个进程,一个进程至少一个线程。二、线程线程之间可以实现共享数据1.创建并启动线程(1)方式一:继承Thread类这里的Thread类用来管理线程,里面定义了一些具体操作线程...

2019-06-25 11:38:54 77

空空如也

空空如也

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

TA关注的人

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