自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ma Sizhou

好记性不如烂笔头

  • 博客(215)
  • 资源 (3)
  • 收藏
  • 关注

原创 【进阶篇-Day14:JAVA中IO流之转换流、序列化流、打印流、Properties集合的介绍】

/1、定义三个对象 Student s1 = new Student("张三" , 23);Student s2 = new Student("李四" , 24);Student s3 = new Student("王五" , 25);//2、定义输出序列化流,并执行序列化 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("序列化.txt" , true));

2024-08-08 22:46:29 862

原创 【进阶篇-Day13:JAVA中IO流之字节流、字符流的介绍】

I就是input从数据源读取数据。O就是output向数据目标写入数据。

2024-07-30 23:04:53 717 1

原创 【进阶篇-Day12:JAVA中stream流、File类的介绍】

Stream不会修改原始的集合,因此在流里的操作后的结果,需要用新的集合来保存。需求:键盘录入一个文件夹路径,找出这个文件夹下所有的 .java 文件。注意:文件夹路径有相对路径和绝对路径两种写法。注:stream流就是流水线工作,即。

2024-07-24 22:57:50 1040

原创 【进阶篇-Day11:JAVA中HashSet集合、LinkedHashSet集合、Collections集合工具类、Map接口及遍历方式等的介绍】

*** HashSet的基本使用* 特点:去重* 遍历:迭代器、增强for、foreach方法//1、String类型会默认去重 HashSet < String > hs = new HashSet < >();HashSet;/*** HashSet的基本使用* 特点:去重* 遍历:迭代器、增强for、foreach方法*///1、String类型会默认去重/*** HashSet的基本使用* 特点:去重。

2024-07-21 11:08:48 942

原创 【进阶篇-Day10:JAVA中泛型、平衡二叉树、红黑树、TreeSet集合的介绍】

1.1 泛型类1.2 泛型方法1.3 泛型接口1.4 泛型通配符1.5 总结左左:左右:先把左子树左旋:再整体右旋:右右:右左:先对右子树做一次右旋转,如下:再整体做一次左旋转:3.2 比较器排序3.3 两种比较器如何选择

2024-07-18 22:27:27 893

原创 【进阶篇-Day9:JAVA中单列集合Collection、List、ArrayList、LinkedList的介绍】

注:集合分为单列集合和双列集合单列集合:一次添加一个元素,实现了Collection接口。双列集合:一次添加两个元素,实现了Map接口。2.2.2 增强for循环遍历:/*** 使用增强for循环遍历Student s1 = new Student("张三" , 11);//Student是自定义创建的类 Student s2 = new Student("李四" , 21);Student s3 = new Student("王五" , 31);

2024-07-13 21:46:35 950

原创 【进阶篇-Day8:JAVA中递归、异常的介绍】

*** Describe: 类的功能*//*** 递归介绍:方法直接或间接地调用本身*/methodA();methodB();methodC();methodA();异常的介绍和使用/*** 阅读异常信息:从下往上* 1、找异常错误位置* 2、异常名称* 3、异常原因*/mothed();在阅读异常时,遵循从下往上的原则:- 1、找异常错误位置- 2、异常名称- 3、异常原因注:要是遇到不认识的异常怎么办呢?答:所有的异常都是类。

2024-07-12 23:00:48 310

原创 【进阶篇-Day7:JAVA中Date、LocalDate等时间API的介绍】

/1、将当前时间,封装为Date日期对象 Date date1 = new Date();//Sat Jun 29 16:16:54 CST 2024 //2、将时间毫秒值转换为Date日期对象 Date date2 = new Date(1000L);//传入1000毫秒 //从时间原点1970年0时0分0秒算起:因为中国是东八区,所以是8时 System . out . println(date2);Date;//1、将当前时间,封装为Date日期对象。

2024-07-10 23:08:09 682

原创 【进阶篇-Day6:JAVA中Arrays工具类、排序算法、正则表达式的介绍】

就是把单个字符的一些常用写法,用别的方式代替了。/*** 预定义字符类:* .: 代表任意一个字符* \d:代表一个数字,和[0-9]一个作用* \: 代表转义字符,就是把当前字符的含义,转义成另一种含义,例如"\t",表示将当前的t转换成tab健* \D:代表非数字,和[^0-9]一个作用* \s:代表一个空白字符* \S:代表一个非空白字符* \w:代表英文、数字、下划线,等于[a-zA-Z_0-9]* \W:代表一个非单词字符,等于[^\w]*/

2024-06-29 09:40:18 316

原创 【进阶篇-Day5:JAVA常用API的使用(Math、BigDecimal、Object、包装类等)】

和对象.equals()区别在于前者能避免空指针,而后者不能,除此之外无区别。Objects.isNull(对象)和对象==null完全没有区别。

2024-06-23 10:41:46 356

原创 【进阶篇-Day4:使用JAVA编写石头迷阵游戏】

移动石头块,实际上只需要交换二维数组中的两个数即可,然后再刷新就实现了移动业务。上述思路是:使用一个二维数组存放图片的编号,然后在后持遍历即可获取对应的图片。界面图片已放在资源里,可下载。

2024-06-22 11:00:33 381

原创 【进阶篇-Day3:JAVA接口新特性、代码块、内部类、Lambda表达式、组件、设计模式等的介绍】

/随着类的加载而加载,多用于数据初始化static {System.out.println("Student类的静态代码块...");//编译时,会分散到每个构造方法的第一行System.out.println("Student类的构造代码块...");//现在电脑内存都很大了,所以一般不会使用局部代码块提前释放内存System.out.println("局部代码块...");System.out.println("Student类的构造方法...");同步代码块。

2024-06-18 22:35:10 926

原创 【进阶篇-Day2:JAVA包、抽象类、接口、多态】

注:(1)(2)其实接口类似于只有抽象方法的抽象类,但是通常我们把类和接口的关系:叫做实现接口,而把抽象类和类的关系:叫做继承关系。从上面的例子可以看出,对于同一个引用数据类型(左边),可以new不同的对象(右边)。因此我就有下面的两个疑问:针对上述两个问题,在4.2进行回答。

2024-06-07 15:53:19 865

原创 【进阶篇-Day1:JAVA中static关键字、继承、final关键字的介绍】

总之,static就是个修饰符。思考:这种情况,非要使用父类的方法怎么办呢?答:可以使用super关键字。

2024-05-31 11:38:35 1080

原创 【基础篇-Day9:JAVA集合的介绍和数组的使用】

注:到现在为止,我们发现打印对象名时,String、StringBuilder、ArrayList都是直接输出内容,而非地址值。虽然说,有了集合,可以代替数组,但是为了不浪费空间,还需要根据不同的场景,选择性的去使用这两种容器。今天先介绍ArrayList集合,为了介绍ArrayList集合,先要了解为什么集合的长度是可变的,下面来看。注意,这个方法是有返回值的,添加成功返回true,添加失败返回false。:根据元素做删除,返回是否删除成功的状态。:根据索引做删除,返回删除的元素。

2024-05-30 10:30:43 801

原创 【基础篇-Day8:JAVA字符串的学习】

作用:i < 11111;i < 11111;i++) {//502//3可以发现,使用了StringBuilder类,运行时间减少了几个数量级。

2024-05-27 20:15:07 999 1

原创 【基础篇-Day7:JAVA面向对象的初级使用】

注意点:一段代码要开始运行时,先将源文件编译成字节码文件,然后主方法对应的字节码文件进入方法区,接着主方法进入栈内存,当需要创建新的对象时,也就是new对象时,就会在堆内存中开辟此对象对应的空间。面试时,需要能回答上这三个内存区域的用法。也就是说:谁来调用我,我就代表谁。int age;System.out.println("我是无参构造方法!!!");System.out.println("我是有参构造方法!!!");

2024-05-23 19:19:46 984

原创 【基础篇-Day6:JAVA前5天基础知识练习】

原因是:一个数被另一个数异或两次,则这个数不变。

2024-05-21 16:56:33 266

原创 【基础篇-Day5:JAVA中数组的使用】

注意:这种定义格式,只是数组类型的变量而已,没村中还没有创建出数组容器。{33,44,77}输出:注意:二维数组在存储时,其实存储的是一维数组的地址值。

2024-05-20 20:24:00 338

原创 【基础篇-Day4:JAVA流程控制语句(分支、循环)的介绍】

print9x9();i <= 9;j++){要是想要1-100之间的随机数怎么写?return i;} }Random;return i;

2024-05-16 20:02:23 387

原创 【基础篇-Day3:JAVA运算符、方法的介绍】

简单来说,左边如果已经能判断整体的结果,则不会再执行右边,所以效率高,建议使用带有短路的的逻辑运算符。

2024-05-15 14:26:14 250

原创 【基础篇-Day2:JAVA变量、数据类型、运算符的认识】

基本数据类型引用数据类型//new一个Scanner对象 Scanner sc = new Scanner(System . in);//使用new的对象做键盘录入动作 System . out . print("请输入年龄:");//使用输入的变量 System . out . print("输入的年龄是:" + age);} }Scanner;//new一个Scanner对象//使用new的对象做键盘录入动作System.out.print("请输入年龄:");

2024-05-13 19:50:52 339

原创 【基础篇-Day1:JAVA导学】

Java有三大平台,分别是 Java SE、Java ME、Java EE。

2024-05-09 20:01:09 369 2

原创 剑指 Offer 03. 数组中重复的数字(python3编写)

三种方法实现:数组中重复的数字。

2022-01-28 16:51:30 790 2

原创 剑指 Offer 30. 包含min函数的栈(python3编写)

目录1、题目描述:2、方法:思路:代码:1、题目描述:2、方法:思路:思路来源:https://leetcode-cn.com/problems/bao-han-minhan-shu-de-zhan-lcof/solution/mian-shi-ti-30-bao-han-minhan-shu-de-zhan-fu-zhu-z/普通栈的 push()push()push() 和 pop()pop()pop() 函数的复杂度为 O(1)O(1)O(1) ,而获取栈最小值 min()min().

2022-01-28 15:26:16 811

原创 剑指 Offer 09. 用两个栈实现队列(python3编写)

目录1、题目描述:2、方法:思路:代码:1、题目描述:2、方法:思路:维护两个栈,第一个栈支持插入操作,第二个栈支持删除操作。根据栈先进后出的特性,我们每次往第一个栈里插入元素后,第一个栈的底部元素是最后插入的元素,第一个栈的顶部元素是下一个待删除的元素。为了维护队列先进先出的特性,我们引入第二个栈,用第二个栈维护待删除的元素,在执行删除操作的时候我们首先看下第二个栈是否为空。如果为空,我们将第一个栈里的元素一个个弹出插入到第二个栈里,这样第二个栈里元素的顺序就是待删除的元素的顺序,要.

2022-01-27 18:20:57 380

原创 剑指 Offer 58 - II. 左旋转字符串(python3编写)

目录1、题目描述:2、方法一:使用额外空间思路:代码:3、方法二:三次翻转思路:代码:1、题目描述:2、方法一:使用额外空间思路:最直接的想法是:把字符串从k=n的地方分开,然后把前面的一部分拼接到第二部分的后面,这样的话,我们可以使用一个新的空间来做这种调整。(这个方法不足以拿到offer,能不用就不用)。python的话直接使用切片就可以了,代码如下。代码:class Solution: def reverseLeftWords(self, s: str, n: int).

2022-01-27 18:04:04 1201

原创 剑指 Offer 50. 第一个只出现一次的字符(python3编写)

三种方法实现:剑指offer50.第一个只出现一次的字符

2022-01-27 16:57:39 6323

原创 剑指 Offer 05. 替换空格(python3编写)

三种方法实现替换空格

2022-01-27 11:14:00 336

原创 剑指 Offer 35. 复杂链表的复制(python3编写)

剑指 Offer 35. 复杂链表的复制(python3编写)

2022-01-27 10:01:13 1360

原创 剑指 Offer 24. 反转链表(python3编写)

剑指 Offer 24. 反转链表

2022-01-26 16:36:26 2457

原创 剑指 Offer 06. 从尾到头打印链表(python3编写)

剑指 Offer 06. 从尾到头打印链表(python3编写)

2022-01-26 15:31:32 1249

原创 leetcode(力扣)上如何自己构造二叉树输入用例?(python写法)

力扣上如何自己构造二叉树输入用例?

2021-12-23 18:39:40 5560 3

原创 leetcode笔记总结——(18)二叉树的前、中、后序遍历(python编写)

力扣地址:前序遍历.中序遍历.后序遍历.三种遍历的统一写法:1、思路:我们以中序遍历为例,因为使用栈的话,无法同时解决访问节点(遍历节点)和处理节点(将元素放进结果集)不一致的情况。那我们就将访问的节点放入栈中,把要处理的节点也放入栈中但是要做标记。如何标记呢,就是要处理的节点放入栈之后,紧接着放入一个空指针作为标记。 这种方法也可以叫做标记法。2、代码:详细的思路在注释中。。。。。。(1)前序遍历:# Definition for a binary tree.

2021-10-26 20:27:32 182

原创 leetcode笔记总结——(17)求两个数组的交集(python编写)

力扣题目链接.目录1、题目描述:2、实现思路及代码:2.1 思路一:2.2 思路二:1、题目描述:2、实现思路及代码:2.1 思路一:使用集合:去重排序,然后位运算。(总感觉使用了人家写好的。。。)代码如下:class Solution: def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]: return list(set(nums1) & set(.

2021-10-09 21:51:23 189

原创 leetcode笔记总结——(16)环形链表(python编写)

力扣题目链接.目录1、题目描述:2、实现思路:2.1 方法一思路:2.1 方法二思路:3、代码描述(python):3.1 方法一的代码:3.1 方法二的代码:1、题目描述:2、实现思路:2.1 方法一思路:一个非常直观的思路是:我们遍历链表中的每个节点,并将它记录下来;一旦遇到了此前遍历过的节点,就可以判定链表中存在环。借助哈希表可以很方便地实现。(代码在下面)。2.1 方法二思路:快慢指针:第一步:判断链表是否有环。可以使用快慢指针法, 分别定义 fast 和.

2021-10-09 20:51:44 233

原创 leetcode笔记总结——(15)面试题:链表相交(python编写)

力扣题目链接目录1、题目描述:2、实现思路:3、代码描述(python):1、题目描述:2、实现思路:A长度为 a, B长度为b, 假设存在交叉点,此时 A到交叉点距离为 c, 而B到交叉点距离为d后续交叉后长度是一样的,那么就是 a-c = b-d ------> a+d = b+c。这里意味着只要分别让A和B额外多走一遍B和A,那么必然会走到交叉,注意这里边缘情况是,大家都走到null依然没交叉,那么正好返回null即可。上述的思路是:指向A的指针curA把A链表走完.

2021-10-08 20:51:00 140

原创 leetcode笔记总结——(14)螺旋数组(python编写)

力扣题目链接目录1、题目描述:2、实现思路:3、代码描述:1、题目描述:2、实现思路:直接模拟矩阵的生成。按照要求,初始位置设为矩阵的左上角,初始方向设为向右。若下一步的位置超出矩阵边界,或者是之前访问过的位置,则顺时针旋转,进入下一个方向。如此反复直至填入 n2n^2n2个元素。我是这么标记的:首先上、下、左、右,各标记一个变量,每循环一圈,左和上加一,而右和下则减一。注意边界:(1)当n=1时,单独判断;(2)n为奇数时,最中间的一个数要单独填充。3、代码描述:clas.

2021-09-27 22:05:56 235

原创 动态规划算法练习——11、一和零(多一个维度的0-1背包问题,python描述)

本题的力扣链接:https://leetcode-cn.com/problems/ones-and-zeroes/目录1、题目描述:2、思路:3、代码:3.1 python代码:4、总结:1、题目描述:2、思路:官方的思路。。。3、代码:3.1 python代码:class Solution: def findMaxForm(self, strs: List[str], m: int, n: int) -> int: # dp[i][j][k]表示.

2021-09-23 21:10:48 201

原创 动态规划算法练习——10、目标和(求装满背包有⼏种⽅法,python和C++描述)

本题的力扣链接:https://leetcode-cn.com/problems/target-sum/目录1、题目描述:2、思路:3、代码:3.1 python代码(回溯法):3.2 python代码:3.3 C++代码:4、总结:1、题目描述:2、思路:这道题首先一看,好像可以使用回溯搜索法,把所有的情况找出来,然后相加看是不是为target,若是,则计数器加1。这种思想很朴素,但是,会超时。但是也需要会编写程序啊,我把官方的贴过来吧。是C++代码。下面是官方给的回溯法的思路:.

2021-09-21 21:33:13 413 2

【进阶篇-Day4:使用JAVA编写石头迷阵游戏】

游戏界面图片

2024-06-22

django框架学习笔记

django学习

2021-03-16

git实战笔记

git实战笔记

2021-01-25

Ubuntu14.04开发环境搭建文档.pdf

虚拟机安装Ubuntu14.04教程,

2020-07-06

空空如也

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

TA关注的人

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