- 博客(83)
- 收藏
- 关注
原创 【leetcode44-----根据数字二进制下1的数目排序】
给你一个整数数组arr。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中1的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。
2022-12-28 16:08:07 290 1
原创 【Java-----Object类详解】
本文主要介绍了Object基类中的一些常用方法。在Java中,Object类是所有类的基类/超类,一个类如果没有明确继承的父类,那么该类就默认继承Object类。下面介绍一下Object类中的几个常用方法。
2022-12-27 17:46:54 834
原创 【Java-----数组拷贝】
本文主要介绍了数组拷贝的几种方式,深拷贝和浅拷贝。深拷贝和浅拷贝对于数组来说,深拷贝就是相当于拷贝了数组的对象(基本数据类型),也就是数组当中的内容。而浅拷贝就是拷贝的是数组的地址(引用类型),浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化。
2022-12-26 15:38:47 775
原创 【Java-----创建线程的方法】
本文主要总结了创建线程的几种方法:方法一:继承于Thread类,方式二:实现Runnable接口,方式三:实现Callable接口,方式四:使用线程池,方式五:使用匿名类
2022-12-25 20:53:18 467
原创 【leetcode43-----有效的回旋镖】
给定一个数组points,其中points[i] = [xi, yi]表示 X-Y 平面上的一个点,如果这些点构成一个回旋镖则返回true。回旋镖定义为一组三个点,这些点各不相同且不在一条直线上。
2022-11-13 19:38:14 605
原创 【Java-----Java中的进程与线程详解】
本文主要介绍了Java中进程和线程的概述与区别。进程是动态的,程序是静态的,程序运行起来后,就是一个进程(由系统管理起来的),是系统分配资源的基本单位。进程=程序+数据+PCB(进程控制块,是进程存在的唯一标识)。双击打开某个文件(该文件叫做程序),打开这个文件让程序运行起来就是一个进程。线程是指“进程代码段”的一次顺序执行流程,线程是资源调度的最小单位,线程只是一个进程中的不同执行路径。一个进程可以有一个或多个线程,各个线程之间共享进程的内存空间,系统资源。
2022-11-13 17:16:03 966
原创 【leetcode42-----距离顺序排列矩阵单元格】
给定四个整数 rows,cols ,rCenter 和 cCenter 。有一个rows x cols的矩阵,你在单元格上的坐标是(rCenter, cCenter) 。返回矩阵中的所有单元格的坐标,并按与(rCenter, cCenter)的 距离 从最小到最大的顺序排。你可以按 任何 满足此条件的顺序返回答案。单元格(r1, c1) 和 (r2, c2) 之间的距离为|r1 - r2| + |c1 - c2|。
2022-11-13 15:30:29 297
原创 【leetcode41-----可被5整除的二进制前缀】
给定一个二进制数组 nums (索引从0开始)。我们将xi定义为其二进制表示形式为子数组nums[0..i](从最高有效位到最低有效位)。例如,如果 nums =[1,0,1] ,那么x0= 1,x1= 2, 和x2= 5。返回布尔值列表answer,只有当xi可以被 5整除时,答案answer[i] 为true,否则为 false。
2022-11-12 20:13:13 438
原创 【Java-----IO流(八)之对象专属流详解】
本文主要介绍了标准对象流,序列化和反序列化,以及序列化和反序列化的实现。序列化:指把Java对象转换为字节序列的过程,反序列化:指把字节序列恢复为Java对象的过程。对象序列化流:ObjectOutputStream对象反序列化流:ObjectInputStream
2022-11-12 17:48:07 469
原创 【leetcode40-----查找共用字符】
给你一个字符串数组 words ,请你找出所有在 words 的每个字符串中都出现的共用字符( 包括重复字符),并以数组形式返回。你可以按 任意顺序 返回答案。
2022-11-12 15:17:34 189
原创 【Java-----IO流(七)之标准输出流详解】
本文主要介绍了标准输出流的详细信息,以及标准输出流的应用。public static final PrintStream out:是System类中的静态成员变量,是标准输出流,通常该流对应于显示输出或由主机环境或用户指定的另一个输出目标System.out的类型是PrintStream(打印流),其是OutputStream的子类FilterOutputStream的子类
2022-11-11 11:45:42 996
原创 【Java-----IO流(六)之标准输入流详解】
本文主要讲了标准输入流的原理以及使用方法。public static final InputStream in:是System类中的静态成员变量,是标准输入流,通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源
2022-11-06 16:11:35 230
原创 【leetcode39-----找到小镇的法官】
小镇里有 n 个人,按从 1 到 n 的顺序编号。传言称,这些人中有一个暗地里是小镇法官。如果小镇法官真的存在,那么:小镇法官不会信任任何人。每个人(除了小镇法官)都信任这位小镇法官。只有一个人同时满足属性 1 和属性 2 。给你一个数组 trust ,其中 trust[i] = [ai, bi] 表示编号为 ai 的人信任编号为 bi 的人。如果小镇法官存在并且可以确定他的身份,请返回该法官的编号;否则,返回 -1 。
2022-11-05 19:43:28 221
原创 【Java-----IO流(五)之数据流详解】
本文主要介绍了数据流概述以及数据流的使用和一些常用方法。数据流也是处理流的一种,为了方便操作Java语言中的基本数据类型和String类型的数据,可以使用数据流来进行操作。数据流可以将我们Java语言中的基本数据类型和String类型的数据持久化存储到硬盘中,需要的时候就可以使用数据输入流将硬盘中持久存储的数据读入到程序中。这里的持久化存储和我们单独对文本的存储是不一样的,持久化存储到硬盘中的文件不是直接打开看的(打开看有的很多都会出现乱码),只是为了进行存储。
2022-11-05 17:24:43 973
原创 【leetcode38-----数组形式的整数加法】
整数的 数组形式 num是按照从左到右的顺序表示其数字的数组。例如,对于 num = 1321 ,数组形式是 [1,3,2,1] 。给定 num ,整数的 数组形式 ,和整数 k ,返回 整数 num + k 的 数组形式 。
2022-11-04 11:47:33 124
原创 【Java-----IO流(四)之转换流详解】
本文主要介绍了转换流的基本概述,以及转换流的作用和使用方法。当我们文件里面含有中文英文以及数字时,我们使用字节流将文件内容在内存中显示,英文和数字显示正常,而中文却显示乱码,这时候我们可以使用转换流将其转换为字符流显示在内存中。转换流是字符流和字节流之间的桥梁。InputStreamReader用于将字节输入流转换为字符输入流,OutputStreamWriter用于将字节输出流转换为字符输出流。使用转换流可以在一定程度上避免乱码,还可以指定输入输出所使用的字符集。
2022-11-03 17:22:14 892
原创 【Java-----Properties类详解】
本文主要介绍了Properties类,以及Properties类的一些常用方法。Properties是Java中一个比较重要的类,主要用于读取Java的配置文件。各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”或者“键 值”的格式,文本注释信息可以用“#”来注释。
2022-11-03 16:21:53 2476
原创 【Java-----IO流(三)之缓冲流详解】
本文主要介绍了缓冲流的原理,以及字节缓冲流和字符缓冲流的使用方法。缓冲流也称为高效流,或者高级流,字节流可以称为原始流。缓冲流自带缓冲区,可以提高原始字节流和字符流读写数据的性能。缓冲流的原理就是,创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区进行读写,减少系统的IO次数,提高读写效率。
2022-11-01 20:46:07 628
原创 【leetcode37-----有效的山脉数组】
给定一个整数数组 arr,如果它是有效的山脉数组就返回true,否则返回 false。让我们回顾一下,如果 arr满足下述条件,那么它是一个山脉数组:arr.length >= 3在0 < i< arr.length - 1条件下,存在i使得:arr[0] < arr[1] < ... arr[i-1] < arr[i]arr[i] > arr[i+1] > ... > arr[arr.length - 1]
2022-11-01 17:37:35 400
原创 【leetcode36-----独特的电子邮件地址】
每个 有效电子邮件地址 都由一个 本地名 和一个 域名 组成,以 '@' 符号分隔。除小写字母之外,电子邮件地址还可以含有一个或多个'.' 或 '+' 。例如,在alice@leetcode.com中,alice是 本地名 ,而leetcode.com是 域名 。如果在电子邮件地址的 本地名 部分中的某些字符之间添加句点('.'),则发往那里的邮件将会转发到本地名中没有点的同一地址。请注意,此规则 不适用于域名 。例如,"alice.z@leetcode.com” 和 “alicez@
2022-11-01 16:55:33 487
原创 【leetcode35-----卡牌分组】
给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有X张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回true。
2022-11-01 15:25:32 124
原创 【Java-----IO流(二)之字符流详解】
本文主要介绍了字符流的一些相关知识,字符输入流和字符输出流的常用方法。当使用字节流读取文件时,可能会有一个问题,就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储,所以Java提供了字符流类,以字符为单位读写数据,专门用于处理文本文件。
2022-10-31 19:41:29 432
原创 【Java-----IO流(一)之字节流详解】
本文主要讲了字节流的概述以及字节输入流和字节输出流的使用。字节流是按照字节的方式读取数据,一次读取一个字节,也就是8个二进制位,这种流是万能的,什么类型的文件都可以读取,包括:文本文件,图片,声音文件,视频文件等。通常如果文件能通过记事本打开,我们还可以读懂里面的内容,就使用字符流,否则使用字节流。如果不知道该使用哪种类型的流,就使用字节流。IO:输入/输出(Input/Output)流:是一种抽象概念,对数据传输的总称,也就是说数据在设备间的传输成为流,流的本质是数据传输IO流:用来处理设备间数据传输
2022-10-27 20:54:51 1746
原创 【leetcode33--翻转图像】
给定一个n x n的二进制矩阵image,先 水平 翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转[1,1,0]的结果是[0,1,1]。反转图片的意思是图片中的0全部被1替换,1全部被0替换。例如,反转[0,1,1]的结果是[1,0,0]。
2022-10-25 21:08:23 132
原创 【leetcode32-----字符的最短距离】
字符的最短距离给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。返回一个整数数组 answer ,其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。两个下标i 和 j 之间的 距离 为 abs(i - j) ,其中 abs 是绝对值函数。
2022-10-25 20:48:52 577
原创 【Java-----File类详解】
本文主要讲解了File类的使用以及File类中的常用方法。Java.io.File类是文件和文件目录路径的抽象表示形式,与平台无关。文件和目录是可以通过File封装成对象的,对于File而言,其封装的并不是一个真实存在的文件,仅仅是一个路径名而已,它可以是存在的,也可以是不存在的,将来是要通过具体的操作把这个路径的内容转换为具体存在的。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。File类中涉及到关
2022-10-25 20:06:36 757
原创 【leetcode31-----写字符串需要的行数】
我们要把给定的字符串 S从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组widths,这个数组widths[0] 代表 'a' 需要的单位,widths[1] 代表 'b' 需要的单位,...,widths[25] 代表 'z' 需要的单位。现在回答两个问题:至少多少行能放下S,以及最后一行使用的宽度是多少个单位?将你的答案作为长度为2的整数列表返回。
2022-10-24 20:21:29 80
原创 【leetcode30-----唯一摩尔斯密码词】
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串,比如:'a' 对应 ".-" ,'b' 对应 "-..." ,'c' 对应 "-.-." ,以此类推。给你一个字符串数组 words ,每个单词可以写成每个字母对应摩尔斯密码的组合。例如,"cab" 可以写成 "-.-..--..." ,(即 "-.-." + ".-" + "-..." 字符串的结合)。我们将这样一个连接过程称作 单词翻译 。对 words 中所有单词进行单词翻译,返回不同 单词翻译
2022-10-24 19:49:20 92
原创 【leetcode29-----图像渲染】
本文主要介绍了深度优先和广度优先这两种经典的解法。有一幅以m x n的二维整数数组表示的图画image,其中image[i][j]表示该图画的像素值大小。你也被给予三个整数 sr ,sc 和 newColor 。你应该从像素image[sr][sc]开始对图像进行 上色填充 。为了完成 上色工作 ,从初始像素开始,记录初始坐标的 上下左右四个方向上 像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应 四个方向上 像素值与初始坐标相同的相连像素点,
2022-10-24 17:52:59 111
原创 【Java-----Queue集合详解】
本文主要讲了Queue集合的基本方法以及其实现类。Queue接口有一个PriorityQueue实现类,除此之外,Queue还有一个Deque接口,Deque代表一个双端队列,双端队列可以同时从两端来添加,删除元素,因此Deque的实现类既可当成队列使用,也可当成栈使用,Java为Deque提供了ArrayDeque和LinkedList两个实现类。Queue用于模拟队列这种数据结构,队列通常是指先进先出的容器。新元素插入(offer)到队列的尾部,访问元素(poll)操作会返回队列头部的元素。通常,队列不
2022-10-23 19:20:20 7644
原创 【leetcode28-----托普利茨矩阵】
给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。
2022-10-22 20:56:10 340
原创 【Java----String类详解】
本文主要介绍了String类的概念,特点,构造方法,常用方法等,String表示字符串类型,属于引用数据类型,不属于基本数据类型。String类由final关键字修饰,表示该类不能被继承。在Java中,String的对象可以通过直接赋值的形式进行实例化操作,也就是说在Java中,使用双引号""引起来的都是String的对象。字符串的字符使用Unicode进行编码,一个字符(不区分字母还是汉字)占两个字节。Java中规定,双引号括起来的字符串是不可变的,也就是说"abc"自出生到最终死亡,不可变,不能变成
2022-10-22 20:11:27 4646 1
原创 【java-----Character类详解】
本文主要讲了Character类以及Character类的常用方法,Character类概述Character类用于对单个字符进行操作,Character类在对象中包装一个基本类型char的值,在实际开发中,我们经常会遇到需要使用对象,而不是内置数据类型的情况,为了解决这个问题,Java语言为内置数据类型char提供了包装类Character类,Character类的对象包含类型为char的单个字段,这样的话就能够将基本数据类型当对象来处理。
2022-10-20 20:39:44 3568 1
原创 【leetcode27-----最短补全词】
给你一个字符串 licensePlate 和一个字符串数组 words ,请你找出words 中的 最短补全词 。补全词 是一个包含 licensePlate 中所有字母的单词。忽略licensePlate 中的 数字和空格 。不区分大小写。如果某个字母在 licensePlate 中出现不止一次,那么该字母在补全词中的出现次数应当一致或者更多。例如:licensePlate = "aBc 12c",那么它的补全词应当包含字母 'a'、'b' (忽略大写)和两个 'c' 。可能的 补全词 有 "
2022-10-20 17:49:03 345
原创 【leetcode26-----至少是其他数字两倍的最大数】
给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。笔者的解法是首先遍历数组找出最大值,然后遍历数组,判断除了最大值以外的其他元素的二倍是否大于最大值,若有元素的二倍大于最大值,则返回-1;若所有元素的二倍都不大于最大值,则返回最大值的下标。官解的解法是遍历数组,同时找出最大值和次大值,并记录最大值的下标,若最大值大于等于次大值的二倍,则返回最大值的下标,否则返回-1。
2022-10-20 17:18:00 91
原创 【Java-----异常处理机制详解】
本文主要讲了Java中异常的体系结构以及分类,以及Java中异常的处理机制,以及处理方法。程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?Java的解决方法是异常处理机制。异常处理机制能让程序在发生异常时,按照代码的预先设定的异常处理逻辑,针对性的处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw语句手动抛出的,
2022-10-19 18:32:19 1546
原创 【java-----System类详解】
System类位于Java.long包,代表当前Java程序的运行平台,系统级的很多属性和控制方法都放置在该类的内部。System类由final修饰,所以不能被继承,System类这种final类是在JVM启动时就会被初始化,由于System类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。但System类提供了一些静态的类变量和类方法,允许直接通过System类来调用这些类变量和类方法。
2022-10-17 17:02:23 2324
原创 【leetcode25-----寻找数组的中心下标】
给你一个整数数组nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。大致思路就是首先算出数组所有元素的总和sum,然后从头遍历数组,当前遍历到的元素是nums[i],左侧数之和leftsum为当前元素左边的所有元素之和,右侧
2022-10-17 12:05:48 288
原创 【Java-----日期类(三)之Calendar类详解】
Calendar类是Java.util包中提供的一个抽象类,该类从JDK1.1开始出现,作为Date类的替代方案,Calendar类中包含了对不同国家地区日历的处理,Calendar类常见的子类为:java.util.GregorianCanlendar;获取Calendar对象一般使用类中提供的静态方法:getInstance(),该方法返回了Calendar的子类对象
2022-10-15 21:03:53 13975
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人