自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 和为S的连续正数序列(java)

小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!由题目可知信息:所需结果为 d=1,项数n 的和为S的...

2020-03-14 16:12:22 271

原创 二叉树的镜像(Java)

之前一直不敢做二叉树的,感觉贼难,今天两分钟做出了,自己不敢相信????‍竟然这么简单。OMG!真不知道我之前是怎么想的。操作给定的二叉树,将其变换为源二叉树的镜像。什么是二叉树的镜像,你是不是还不清楚?上图????我们先来简化问题:1.只有根结点,不需要改变2.只有根结点,一个左孩子,一个右孩子,左右孩子交换即可3.多个结点,即左孩子和右孩子还有孩子结点,我们可以看出先是交换底层对应的左右孩子...

2020-03-10 10:07:14 259

原创 和为S的两个数

输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。注意题目给出的信息:递增排序、两个数的乘积最小思路1.当数组为空,或者数组只有一个数时,很明显不符合题意,直接返回。2.虽然这个方法比较笨,遍历数组找到对应的被减数,当符合条件时,变更结果集。import java.util.ArrayList;import ...

2020-03-01 17:27:48 193

原创 扑克牌顺子(java)

LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变...

2020-02-23 21:50:46 596

原创 从第一个字符串中,删除第二个字符串(Java)

题目描述:键盘输入两个字符串,从第一个字符串中,删除第二个字符串。例如输入:str1:hello,world! str2:world输出:hello,!思路:1.判断 str1 是否含有 str2,倘若含有才有后续,倘若没有直接输出 str1即可2.如果含有 str2 ,定位到 str2 在 str1 中的位置3.根据 str2 的长度来更新是 str1public voi...

2020-02-22 16:50:23 1272

原创 将字符串日期排序输出(Java)

题目描述:键盘输入多个日期,日期之间使用“,”隔开,由于输入的日期顺序可能是乱着的,你需要按照自然顺序输出已排序的日期import java.text.SimpleDateFormat;import java.util.Comparator;import java.util.Scanner;//自定义日期类,定义比较规则class myData { int year, mount...

2020-02-22 16:41:34 1871

原创 数组中出现次数超过一半的数字(Java)

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。也许下边代码不是最优解,但希望能给你提供一点思路因为数组元素和出现次数并不是相等的,所以可以使用key-value形式来处理元素,后续获取出 map 中 value 最大的对应的 key...

2020-02-19 11:36:04 540

原创 红黑树添加结点之后维护太容易了!!!

提到红黑树,你是不是头皮发麻,难搞哦????,别害怕,我来教你分分钟学会他我们先来看一下红黑树的定义:红黑树:1) 每个节点颜色属性非红即黑2) 根节点颜色一定是黑色的;3) 如果一个节点是红的,那么它的两儿子都是黑的;4) 对于任意节点而言,其到叶子节点的每条路径都包含相同数目的黑色节点数;(因为所有叶子节点都会回到 nil 哨兵结点,故本文忽略哨兵结点)根据上述定义,我们可以设置红黑树...

2020-02-05 21:59:29 881

原创 Arrays中 copyOf 和 System 中 arraycopy 两者的区别

【为什么会写这篇博文?】花花❀看到 Arrays 源码中的 copyOf 方法,底层调用的是 System 中 arraycopy 方法,而且我已经掉过不止一次数组复制的坑????,今天就打算写个博客给我长个记性。Arrays是一个工具类,该类中几乎所有的方法都是静态方法,也就是说可以通过类名来调用相应的方法。首先来看以下 copyOf 源码 public static <T>...

2020-02-01 18:42:34 233

原创 字符串转换成整数(Java)

题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0思路1 判断字符串是否为空,如果为空直接返回02 由于可以输入符号,故需特殊处理字符串3 由于整数最小值的绝对值 > 最大值的绝对值,故需处理整数边界问题4...

2020-01-14 18:59:19 496

原创 分割链表(Java)

给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。eg:测试用例。输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5-------------------------------...

2019-11-13 11:27:14 589

原创 Java中接口和抽象类的区别

下午实在敲不进去代码,刚好整理一下,面试中的经常被问道的问题????:你给我讲讲接口与抽象类的区别?那跟着我来看看叭(基于jdk1.8版本)看之前我们来了解一个概念,抽象方法。何为抽象方法?抽象方法即只定义了方法的修饰符、返回值类型、方法名、参数和异常。没有具体的实现行为。例如void fun();interface 接口:has-a 问题对方法的抽象!!!一个类可以实现多个接口。一个类...

2019-11-04 17:17:37 404

原创 二叉搜索树的最近公共祖先(java)

题目描述:

2019-11-04 15:39:53 362

原创 通过& / ^实现整数的加减乘除

题目描述: 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。我们可以先来观察一个计算式(都用二进制表示)8 : 1 0 0 07 : 0 1 1 1/---------------& : 0 0 0 0^ : 1 1 1 1/----------------8 : 1 0 0 0从上边简单的例子可以看出,可以通过简单的按位与操作,就可以达到...

2019-10-31 21:25:21 133

原创 两数相加(java)

题目描述:算法就像你在纸上计算两个数字的和那样,我们首先从最低有效位也就是列表 l1l1l1 和 l2l2l2 的表头开始相加。由于每位数字都应当处于 0…90 \ldots 90…9 的范围内,我们计算两个数字的和时可能会出现 “溢出”。例如,5+7=125 + 7 = 125+7=12。在这种情况下,我们会将当前位的数值设置为 222,并将进位 carry=1carry = 1carry=...

2019-10-26 12:25:28 1735

原创 两数求和Java

题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]一、暴力解法...

2019-10-22 17:19:39 309

原创 快排实现

时间复杂度:o(nlog2n)最优时间复杂度:o(nlog2n)空间复杂度:o(1)快排思想就是将数组分为两个部分,分别对两部分再次进行排序,使用快排对数组进行排序,其实就是将大数组转化成小数组,对小规模数组进行排序。因此为了防止数组越界,快排需要三个参数!!!因为快排是将数组分为两个部分,基准左边的元素都比基准小,基准右边的元素都比基准大。故有时候可能进行排序的只有基准的一边。快排是一...

2019-10-17 23:03:16 192

原创 寻找链表的环入口点+两个链表的相交结点(返回指定的结点值)

我们先来了解一下查找链表的环入口点常用的方法。即使用快慢指针来解决该问题public Entry loopEntry(){ if(headEntry == null || headEntry.next == null){ return null; } if(headEntry.next == headEntry) return headE...

2019-10-06 20:19:09 237 3

原创 source insight 导入JDK源码

自己导入过很多次,但是每次都网上搜导入流程????‍,所以决定自己写一个导入流程。在这里要说一下,首先要解压jdk源码中的src压缩包,为了之后导入源码方便点,建议解压到一个文件夹????中。第4步中浏览源码所在位置,也是浏览的解压后src文件所在目录。1.打开source insight 界面因该是下面的,你们中间的可能是untitled project(因为我前一个项目是jdk1.8)。2.选择p...

2019-09-23 10:36:15 1402

原创 java类加载机制

在Java语言中,类的加载和连接过程是在程序运行期间完成的,这种方式虽然在类加载的时稍微增加一些性能开销,但是提高了Java应用程序的灵活性,Java动态扩展的语言特性就是依赖运行期动态加载和动态链接这个特点所实现的。类加载时机类从加载到JVM中开始,到卸载为止,它的生命周期包括了七个阶段:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Reso...

2019-09-07 09:52:36 112

原创 移除链表元素(java)

删除链表中等于给定值 val 的所有节点。示例输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5第一次做力扣的题呀,还有点小迷。说一下解题思路叭????1.老规矩,判断输入的链表头节点值是否为空,如果为空,直接返回null或者头节点都行。2./** * Definition fo...

2019-09-05 21:56:59 559

原创 树的子结构(java)

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)1.因为有输入值,故需判断输入的根结点是否为空,只有当两个结点都不为空时,才有判断的价值。2. (思想) 从根结点开始判断,先在树1中找到与树2根结点相同的位置,树1 中该结点对应的子节点,倘若子节点也相同,则树1 中存在子结构树2.3.在树1中找与树2的根结点一样的结点,此过程可以看作树1的遍历,故可...

2019-09-05 20:39:41 122

原创 删除链表中重复的结点(java)

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5 处理后为 1->2->51.链表为空,走人ヾ(•ω•`)o。2.因为是单向链表,故删除节点时,挂接的时候要定义一个前驱结点。3.判断遍历到的结点是否需要删除,如果不需要删除,直接往下遍历就好了4....

2019-08-21 10:30:38 554 2

原创 复杂链表的复制(java)

输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)看了剑指offer的C代码,看的我可迷了,你复制链表直接复制就好了呀,反正我是没看懂

2019-08-20 12:51:13 184

原创 HTTP报文整理

报文流HTTP报文是在HTTP应用程序之间发送的数据块,这些数据是以一些文本形式的(描述报文内容及含义的)元信息开头 + 可选的数据部分。这些报文在客户端、服务器和代理之间流动,描述报文流动方向的术语有:“流入”、“流出”、“上游”、“下游”。所有报文都会向下游流动,这也就以为着:所有报文的发送者都在接收者的上有。在下图中,对请求报文来说,代理1 位于代理3 的下游,但对响应报文来说,它就位于...

2019-08-19 23:53:15 295

原创 二叉树中和为某一值的路径(java)

输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)1.还是老话,根结点为空 / target小于0,直接走人。(任何一个路径都是大于等于0叽)2.我们来看它的返回值,ArrayList<ArrayList<Integer>&g...

2019-08-19 14:46:06 429

原创 包含min函数的栈(java)

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。首先我们来分析一下这个题,题目要求时间复杂度为O(1),那么我们可以用空间换取时间,重新开辟一个栈,让该栈仅保存输入元素的最小值。注意!!!题目并没有给提供栈,需要在外部首先定义两个栈。...

2019-08-19 09:49:30 145

原创 第一次只出现一次的字符(java)

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)根据题目描述:我们即需要标记出现的字符,也要标记字符出现的次数。这个时候你要想到map集合,map集合是key-value形式的。1.先判断给出的字符串是否为空,长度是否为0。满足两者其中一个,直接返回-1就可以了。2.创建key-v...

2019-08-18 21:14:31 225

原创 MySQL数据库表的操作

MySQL中的表并不是从创建之后就不能改变的,我们可以通过后期通过sql语句来修改想要修改的表中的属性,下面我们来一起看一下叭

2019-08-17 22:54:16 135

原创 两个链表的第一个公共结点(java)

输入两个链表,找出它们的第一个公共结点。这道题的解题思路:可能转进来的链表长短不一1.遍历链表得到链表长度。2.算出两个链表的长度差,定义跑长链表的结点,和跑短链表的结点3.同时向后跑,若两个结点的值相同,则表示已经找到了公共结点,此时跳出循环即可。如果链表的长度分别为 n 和 m 。时间复杂度:O(n+m)空间复杂度:O(1)class ListNode { int va...

2019-08-17 20:12:18 141

原创 MySQL+ JDBC事务详解

事务的概念一个事务是由一条或者多条对数据库操作的SQL语句所组成的一个不可分割的单元,只有当事务中所有的SQL语句都正常执行完,整个事务才会被提交给数据库,如果有部分失败,那么事务就要退回到执行SQL语句之前的状态,因此,事务要么全部成功,要么全部失败。你是不是好奇为啥要把多条SQL语句打包进行操作呀?我给你举个例子:比方你要给别人转账10000

2019-08-17 14:07:45 194

原创 左旋转字符串(java)

叮叮好久没有做题了,今天做的事反转字符串

2019-08-15 20:55:59 228

原创 数据库常见的存储引擎介绍、选择、查看,修改数据库的方式

存储引擎是MySQL的特点,是一种插入式的存储引擎的概念。MySQL中提到的存储引擎,通俗点讲指的是表的类型,不同类型的存储引擎决定了表在计算机中独有的存储方式,用户可以根据自己不同的要求,选择不同的存储方式。下面介绍MySQL常见的五种存储引擎InnoDB存储引擎 - - - MySQL默认事务型引擎,使用最广泛的存储引擎我们首先来看一下InnoDB存储引擎下数据库的文件类型.opt...

2019-08-12 19:10:21 1085

原创 Java中new对象的坑

public class Test { public static int k = 0; public static Test t1 = new Test("t1"); public static Test t2 = new Test("t2"); public static int i = print("i"); public static int n =...

2019-08-11 16:07:20 580

原创 浅谈MySQL索引

索引含义是存储引擎用于快速找到记录的一种数据结构,是创建在表上,对数据库表中一列或者多列的值进行排序的一种结构,它可以提高查询速度(因为它在查询数据时不用将每条信息都比较,只是查询索引列)。通俗点理解,索引就像整篇文章的目录表,你通过目录可以快速找到你想要查看的主题所在页数。(在MySQL中也叫做“键(key)”)。索引的类型不同的存储引擎定义了每个表的最大索引数和最大索引长度,所有的存储引...

2019-08-08 21:52:33 197

原创 (IoC)控制反转与(DI)依赖注入

控制反转(Inversion of Control)控制反转即IoC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。这种管理方式减少了对象之间的耦合性,方便测试,利于功能复用,更重要的是能使得程序整个结构便的灵活。IoC不是一...

2019-08-07 19:43:22 330

原创 @Autowired和@Resource的详解

@Autowired和@Resource的详解相同点1.都是使用注解的方式注入bean。2.注解的位置是容器的属性 / 容器中的 set 方法。不同点@Autowired@Autowired是spring提供的,导入的包是:org.springframework.beans.factory.annotation.Autowired默认按类型注入 (Type)依赖的对象必须存...

2019-08-06 16:28:12 423

原创 用处理流打印一串英文字符是总会出现239???

哎呦,今天被这个239搞到疯了

2019-08-06 00:00:10 376

原创 Spring Boot项目创建流程(IDEA)

Spring Boot项目创建流程第一步:第二步:第三步更改Group和artifact:groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org...

2019-08-04 23:23:13 296

原创 MySQL中数据库和表的基本命令

数据库操作查看已存在的数据库: show databases;创建数据库 :create database 数据库名;删除数据库:drop database 数据库名;选中数据库:use database 数据库名;表操作表的一切操作是在数据库中,故应该先选中一个数据库!!!查看表的信息:show create table 表名 \Gdescribe 表名;创建表:“属...

2019-08-04 09:47:54 175

空空如也

空空如也

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

TA关注的人

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