自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 问答 (1)
  • 收藏
  • 关注

原创 移除数组中与指定元素相同的元素

        题目:        示例:        实现思路:要求空间复杂度为O(1),那我们就不能使用额外的空间,这个时候我们能想到的只有双指针法。同样定义两个快慢指针slow、fast,fast用于遍历数组。按照之前我的想法是,从前往后遍历数组,当nu

2021-10-06 09:56:51 277

原创 删除有序数组中的重复元素(要求空间复杂度为O(1))

        题目:        示例:        思路:采用双指针法,定义一个慢指针,定义一个快指针。慢指针指向已经去重的数组,快指针用来遍历原数组。当慢指针指向的元素和快指针指向的元素相同时,让快指针自增,直到遇到不同的元素,此时慢指针向前挪动一个元素

2021-10-05 15:53:01 559

原创 最长公共前缀

        题目:        示例:        思路:说一下我最开始的思想,最开始我想的是能不能将数组中的各个字符串取出来,然后将其转换为char[]数组,再定义三个指针,同时遍历三个数组,这样就可以找到最长的公共前缀了。但是后来一想,有个问题没办法解

2021-10-05 14:57:22 144

原创 罗马数字转整数

        题目:        示例:        思路:一个罗马数字对应一个整数,我们可以把它们想成一个映射关系。使用一个Map集合来存储这个映射关系。由于题目中已经告诉我们,罗马数字中小的数字在大的数字右边,但也有例外,我们只需要把例外的情况诺列出来即

2021-10-05 14:09:36 122

原创 有效的括号

        题目: 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。                        有效字符串需满足:

2021-09-30 15:05:15 89

原创 LinkedHashMap

文章目录LinkedHashMap简单介绍属性及构造函数LinkedHashMap的相关方法LinkedHashMap简单介绍        LinkedHashMap继承自HashMap,实现了Map接口,所以LinkedHashMap是在HashMap的基础上实现的,保留了HashMap的所有特征,唯一与HashMap不同的是,LinkedHashMap是可以保证数据的迭代顺序的(可以是访问顺序,也可以是插入顺序)

2021-09-02 16:09:56 171

原创 从尾到头打印链表

        题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。        举例:已知链表:1->2->3,输出:[3,2,1]        思路:使用栈,栈具有先进后出的特点。   &nbs

2021-08-17 14:49:25 68

原创 替换空白空格

        题目:将字符串中的空格替换为 “%20”。        思路:转为字符数组。        难度指数:一颗星        代码实现: // 将字符串中出现空格 替

2021-08-17 14:05:56 95

原创 排序算法之选择排序

选择排序        思想:①从未排序序列中选出最小的数字,放入已排序序列的起始位置。                  ② 再从未排序序列中选出最小的数字,放入已排序序列的末尾。     &n

2021-08-11 15:17:48 68

原创 HashSet详解

简介        Set集合,继承自Collection集合,其特点为:插入无序,存储的元素不能重复,且不可根据index来访问,可以存储null。        Set集合的常用实现类有:HashSet、TreeSetHashSet        HashSe

2021-08-06 14:34:54 1695

原创 判断一个数是否是回文数

        题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。                   回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 1

2021-08-04 11:01:31 1781

原创 整数的反转

反转整数        题目:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围(-2147483648~2147483647),就返回0。        实例:        输入:x = 123&nbsp

2021-07-30 14:10:08 333

转载 无重复字符的最长子串

无重复字符的最长子串        题目:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。        示例:                输入: s = “a

2021-07-29 11:53:20 120

原创 数组中最小的k个数

数组中最小的k个数        题目:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。        思路:使用快排的思想,我们知道,快排的一次划分过程的结果是将所有小于基准元素的元素放在该基准元素的前面,所有大于基准元素的元素放在该基准元素的后面。这样,我

2021-07-22 11:00:21 278

原创 数组中出现超过数组长度一半的数字

数组中出现超过数组长度一半的数字        题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。        思路一:哈希法。我们可以创建一个HashMap。其中键为数组中的元素,其对应的值为该元素在数组中出现的次数。        时间复杂度

2021-07-21 13:15:45 172

原创 调整数组使得奇数在前偶数在后

调整数组使得奇数在前偶数在后        题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。        思路:定义两个指针,分别记作head、tail。head一直往后走,直到指向的数据不是奇数时,交换head和tail所指的数据。tail一直往前走,直到指向的数据不是

2021-07-21 11:26:47 112

原创 排序数组中查找数字

排序数组中查找数字    题目:统计一个数字在排序数组中出现的次数。    思路:二分查找。由于题目给出的条件是有序数组,所以我们首先想到二分查找。    本题的难度在于,在我们找到目标元素在数组中的位置后,我们不能确定它的前面和后面的元素是不是也是跟它相同的元素,这就导致了,在我们确定二目标元素位置后,没有办法选择是向右半部分还是左半部分继续查询。这个时候,我们可以模拟一个窗口,定

2021-07-20 11:38:56 215

原创 旋转数组中的最小数字

旋转数组中的最小数字        题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。        思路:     &

2021-07-20 10:36:45 177

原创 二维数组的查找

二维数组的查找题目:      在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序,每一列都从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:      现有矩阵ar如下:      [    &nbsp

2021-07-15 16:09:07 187

原创 红黑树的插入

文章目录红黑树定义红黑树性质红黑树的插入红黑树定义        红黑树(Red Black Tree) 是一种自平衡的二叉查找树,典型用途是实现关联数组,红黑树与AVL树类似,都是在插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。        红黑树查找、插入删除的时间复杂度为O(logn) &nbsp

2021-06-17 16:12:00 976 1

原创 AQS源码(二)之独占锁的释放

文章目录前言ReentrantLock的锁释放前言        Java的内置锁(synchronized)在退出临界区之后是会自动释放锁的,但是ReentrantLock这样的显示锁是需要自己显示的释放的,所以在加锁之后一定不要忘记在finally块中进行显示的锁释放:Lock lock = new ReentrantLock();lock.lock();try{ ...}catch(..){ ..}fin

2021-06-12 10:32:18 185 1

原创 JavaIO四大模型:NIO(IO多路复用)

文章目录概述NIO涉及到的名词JavaNIO 服务端和客户端流程概述        Java中的 Selector 和 Linux中的 epoll 都是基友IO多路复用的,有时也被称为异步阻塞IO。        我们之前介绍过,同步阻塞I/O和同步非阻塞IO。对于同步阻塞I/O来说,每次进行I/O时,我们的用户线程都会阻塞,显然这在高并发下效

2021-06-07 20:21:00 1559 2

原创 AVL树的旋转

文章目录定义AVL树的旋转左单旋转右单旋转双旋转定义        一棵AVL树可以是空树,也可以是具有下列性质的二叉搜索树:它的左子树和右子树都是AVL树,且左子树和右子树的高度之差的绝对值不超过1(也就是小于等于1)。(右子树高度 - 左子树高度)        节点的平衡因子:给每个节点附加一个数字,给出该节点右子树的高度减去左子树的高度

2021-06-07 17:13:25 3696 3

原创 AQS源码(一)之独占锁的获取

文章目录前言Java并发工具类的三板斧AQS核心AQS核心属性FairSync in ReentrantLockacquiretryAcquire()addWaiteracquireQueuedshowParkAfterFailedAcquire()parkAndCheckInterrupt()总结前言        AQS(AbstractQueuedSynchronizer)是Java中众多锁以及并发工具的基础,其底层采

2021-06-06 20:21:11 84

原创 二叉搜索树

文章目录定义相关算法在二叉搜索树中查找指定的关键码向二叉搜索树中插入一个新的值判断一棵二叉树是否为二叉搜索树定义        二叉搜索树或者是一颗空树,或者是具有下列性质的二叉树:每个节点都有一个作为搜索依据的关键码,所有节点的关键码互不相同。左子树(如果存在)上所有的节点的关键码都小于根节点的关键码。右子树(如果存在)上的所有节点的关键码都大于根节点的关键码左子树和右子树也是二叉搜索树。 &nbs

2021-06-05 19:59:42 133

原创 JavaIO四大模型:BIO(同步阻塞IO)

文章目录IO读写原理Java I/O底层流程四大模型之:BIO同步阻塞IOIO读写原理        用户进程进行的IO读写,都会用到read和write两大系统调用。        read系统调用:将数据从内核缓冲区复制到进程缓冲区中。        wri

2021-06-04 17:43:33 182 2

原创 计算机网络概述

文章目录概述网络体系结构OSI参考模型TCP/IP参考模型网络协议TCP协议UDP协议概述        计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同点的计算机设备连接起来,实现资源共享和数据传输的系统。        网络编程就是编写程序使互联网的两个(或多个)设备之间进行数据传输。网络体系结构  &

2021-06-04 15:32:29 211

原创 二叉树的创建以及前序、中序、后序、层次遍历

文章目录二叉树的创建前序序列和中序序列创建二叉树中序序列和后序序列创建二叉树二叉树的遍历二叉树的前序遍历递归与非递归实现二叉树的中序遍历递归与非递归实现二叉树的后序遍历递归与非递归实现二叉树的层次遍历二叉树的Z字形遍历二叉树的创建前序序列和中序序列创建二叉树        我们都知道,二叉树的前序遍历规则和中序遍历规则。        前序遍

2021-06-04 12:09:08 768 1

原创 树和二叉树

文章目录树的定义二叉树的定义二叉树的性质满二叉树完全二叉树二叉树的遍历规则树的定义        树是由n(n>=0)个结点组成的有限集合。如果n=0,称为空树;如果n>0则:        有一个特定的称之为根(root)的结点,它只有直接后继,但没有直接前驱。     &nbs

2021-06-04 09:58:59 246

原创 排序算法之插入排序

插入排序        对想要排序的元素以插入的方式寻找该元素的适当位置,以达到排序的目的。        思想:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有

2021-06-02 15:26:55 82

原创 Java内存模型

文章目录Java内存模型介绍程序计数器Java虚拟机栈本地方法栈堆方法区方法区与永久代Java内存模型介绍        Java虚拟机所管理的内存可分为5大块,分别为:堆区(Java Heap)、虚拟机栈(Virtual Machine Stacks)、本地方法栈(Native Method Stacks)、方法区(Method Area)、程序计数器(Program Counter Register)。程序计数器&

2021-06-01 21:19:38 78 2

原创 排序算法之归并排序

归并排序        归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治的策略。        下图就是我们归并排序的整体流程,有一个划分的过程,也有一个合并的过程,在合并的时候,会按照数字大小依次排序。我们每进行依次划分,都要进行合并排序。       &nb

2021-06-01 19:10:09 348

原创 MySQL的三大范式

文章目录数据库范式第一范式(1NF)第二范式(2NF)第三范式(3NF)数据库范式        应用数据库范式可以带来许多好处:                         ① 减

2021-05-25 20:07:59 409 1

原创 MySQL主从复制

文章目录简介主从复制的原理简介        由于在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需要,此时数据库集群就很好地解决了这个问题。采用MySQL分布式集群,能搞搭建一个高并发、负载均衡的集群服务器。但是,如果保证这些服务器之间数据与数据的完整性呢?MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。     &

2021-05-23 19:01:01 67 1

原创 MySQL优化相关(未完待续)

        MySQL的优化方面比较多,我们可以从存储引擎、数据类型、范式、索引、分库分表等方面进行优化。        1、存储引擎方面:选择合适的存储引擎,当并发量较小,并且对事务、外键等无要求的情况下,我们可以使用MyISAM存储引擎来存储数据,当并发量较多时,选择InnoDB存储引擎。    &

2021-05-23 16:59:15 61 1

原创 MySQL存储引擎

文章目录MySQL各存储引擎介绍存储引擎相关命令MyISAM和InnoDB的区别MySQL各存储引擎介绍        MySQL中存储引擎常用的有:InnoDB、MyISAM、memory。        MySQL默认支持的是InnoDB。        In

2021-05-21 18:31:39 80

原创 MySQL事务

文章目录事务介绍事务的特征(ACID)事务的使用事务的隔离机制事务介绍        事物的定义: 一个事务是由一条或者多条对数据库操作的SQL语句组成的不可分割的单元。只有当事务中所有的SQL操作都正常执行了,整个事务才会提交到数据库,如果事务中部分SQL语句执行失败,则整个事务要么回滚到最初的状态,要么失败。所以,一个事务要么全部提交给数据库,要么就不提交给数据库。事务的特征(ACID)  &nb

2021-05-21 17:03:57 193

原创 Java锁之偏向级锁、轻量级锁、重量级锁

文章目录什么是偏向级锁、轻量锁、重量级锁偏向级锁轻量级锁重量级锁什么是偏向级锁、轻量锁、重量级锁        首先,我们需要明确一点:这三种锁只针对synchronized        我们都知道,任意一个java对象都可以做为锁,java对象的锁信息存储在对象头中的Mark Word字段中。Mark Word里默认存储对象的HashCo

2021-05-21 11:49:44 3601 4

原创 Java锁之乐观锁、悲观锁(包括CAS操作、synchronized底层实现原理)

文章目录锁分类乐观锁 / 悲观锁乐观锁的实现:CAS(Compare and Swap)操作CAS存在的问题ABA问题解决方案独享锁 / 共享锁互斥锁 / 读写锁可重入锁公平锁 / 非公平锁分段锁偏向锁 / 轻量级锁 / 重量级锁锁分类        Java中对锁的分类有如下几种:           &nbsp

2021-05-20 18:35:17 461 1

原创 数组:两数之和

两数之和题目:      给定一个整数数组 nums 和 一个整数目标值target,请你在该数组中找出 和为目标值的 那 两个整数,并返回它们的数组下标。      你可以假设每种输入只会对应一个答案,但是,数组中同一个元素不能使用两遍。示例一:      输入: nums = [2,7,11,15] ,target

2021-05-17 10:12:11 986

空空如也

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

TA关注的人

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