- 博客(47)
- 收藏
- 关注
原创 leetcode算法19-相交链表
给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。图示两个链表在节点c1开始相交题目数据整个链式结构中不存在环。,函数返回结果后,链表必须。
2025-05-08 15:40:51
435
原创 leetcode算法18-顺时针旋转矩阵
1.方法一观察可得:matrix[i][j] 顺时针选择之后去到了matrix[j][n-i-1]。填入辅助数组,在覆盖回来。2.方法二:外循环只需要循环一半,i<n/2即可上下颠倒。从第二行才需要对角线交换。旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。解法二:使用交换,水平翻转+主对角线翻转。使用另一个矩阵来旋转图像。解法一:引入辅助数组。
2025-05-08 14:50:27
575
原创 leetcode算法19-螺旋矩阵
2.特殊处理:对于只有1列的矩阵,循环只需要前两个。使用if判断后两词的执行情况。3.边界值处理:前两个循环已经包含了边界。后两个循环的for就不能取等了。1.思路:围绕边界逐步缩圈。,返回矩阵中的所有元素。
2025-05-05 16:31:17
355
原创 leetcode算法17-除自身以外数组的乘积-前后缀相乘
给你一个整数数组nums,返回 数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据数组nums之中任意元素的全部前缀元素和后缀的乘积都在整数范围内。请且在O(n)时间复杂度内完成此题。
2025-05-04 12:27:42
406
原创 leetcode算法14-轮转数组
给定一个整数数组nums,将数组中的元素向右轮转k个位置,其中k是非负数。向右轮转 1 步:向右轮转 2 步:向右轮转 3 步:向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]
2025-05-02 13:15:15
551
原创 leetcode算法15-和为K的子数组
给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。22。
2025-04-30 10:36:30
520
原创 leetcode算法14-杨辉三角生成
给定一个非负整数 numRows生成「杨辉三角」的前 numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。[[1]]
2025-04-27 18:21:13
382
原创 leetcode算法13-爬楼梯-动态规划
假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?n = 22有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶n = 33有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶解法1:递归(超时)解法2:动态规划解法3:优化动态规划。
2025-04-27 17:58:22
410
原创 leetcode算法12-合并区间
以数组intervals表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].[[1,5]]区间 [1,4] 和 [4,5] 可被视为重叠区间。
2025-04-27 15:24:06
1026
原创 leetcode算法10-找字符串中所有字母异位词-滑动窗口
给定两个字符串s和p,找到s中所有p的的子串,返回这些子串的起始索引。不考虑答案输出的顺序。[0,6]起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。[0,1,2]起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是 "ab" 的异位词。起始索引等于 2 的子串是 "ab", 它是 "ab" 的异位词。
2025-04-27 11:33:45
152
原创 leetcode算法9-无重复字符的最长子串-滑动窗口
给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。1因为无重复字符的最长子串是"b",所以其长度为 1。3因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是的长度,"pwke"是一个子序列,不是子串。
2025-04-27 10:58:06
133
原创 leetcode算法8-三数之和
给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。答案中不可以包含重复的三元组。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。[]唯一可能的三元组和不为 0。[[0,0,0]]唯一可能的三元组和为 0。
2025-04-26 14:41:33
297
原创 leetcode算法7-盛最多水的容器
给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。你不能倾斜容器。49图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
2025-04-26 13:47:18
295
原创 Java多线程、锁、线程池详解
通过本文的介绍,我们深入了解了Java中的多线程、锁机制、线程池的原理和应用。多线程可以提高程序的执行效率,但同时也带来了线程安全的问题。锁机制可以解决线程安全问题,而线程池则可以提高线程的复用率,减少线程创建和销毁的开销。理解这些概念的原理和应用可以帮助开发者编写高效、可靠的并发程序。希望本文能够帮助大家更好地理解和掌握Java中的多线程、锁和线程池,提升编程水平。
2025-04-26 13:10:36
2041
原创 leetcode算法6-最长连续序列
给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。4最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。93。
2025-04-26 13:08:38
286
原创 Java反射与动态代理详解
反射允许对成员变量、成员方法和构造方法的信息进行编程访问。通过反射,我们可以在运行时创建对象、调用方法、访问字段等。动态代理是一种在运行时动态生成代理类的机制。通过动态代理,我们可以在不修改原有类的情况下,为类添加额外的功能。通过本文的介绍,我们详细了解了Java中的反射和动态代理的相关知识。反射允许程序在运行时访问、检测和修改它本身的类和对象的信息,而动态代理则可以在不修改原有类的情况下,为类添加额外的功能。希望本文能够帮助大家更好地理解和掌握Java中的反射和动态代理,提升编程水平。
2025-04-24 17:59:36
399
原创 Java字符集与其余流详解
通过本文的介绍,我们详细了解了Java中的IO流和字符集的相关知识。字符流用于操作纯文本文件的数据,缓冲流可以显著提高字节流的读写性能,转换流是字符流和字节流之间的桥梁,序列化流用于将Java对象写入文件中,打印流用于将数据打印到控制台或文件中,压缩流用于对文件进行压缩和解压缩操作。希望本文能够帮助大家更好地理解和掌握Java中的IO流和字符集,提升编程水平。
2025-04-24 17:53:30
421
原创 Java文件操作与IO流详解
获取当前该路径下所有内容。当调用者File表示的路径不存在时,返回null。当调用者File表示的路径是文件时,返回null。当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组。当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回。当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件夹的路径放在File数组中返回,包含隐藏文件。当调用者File表示的路径是根目录时,返回null。int b;
2025-04-24 17:48:44
806
原创 Java方法引用与异常处理详解
在Java中,我们可以根据需要自定义异常。自定义异常需要继承自Exception类或其子类。定义异常类。写继承关系。空参构造。带参构造。方法引用和异常处理是Java编程中不可或缺的两个重要概念。通过方法引用,我们可以简化Lambda表达式的使用,使代码更加简洁。而通过异常处理,我们可以确保程序在遇到错误时能够优雅地处理,提高程序的健壮性。希望本文能够帮助大家更好地理解和掌握Java中方法引用和异常处理的知识。如果有任何问题或建议,欢迎在评论区留言讨论。
2025-04-24 17:42:37
306
原创 Java Stream流
Stream流是Java 8引入的强大工具,它简化了集合和数组的操作,使得代码更加简洁和高效。通过本文的介绍和示例代码,相信大家对Stream流有了更深入的理解。在实际开发中,合理使用Stream流可以大大提高代码的可读性和性能。希望本文能够帮助大家更好地理解和掌握Java中Stream流的知识。如果有任何问题或建议,欢迎在评论区留言讨论。
2025-04-24 17:37:35
388
原创 Java中Map集合的知识点详解
键值对:每个元素是一个键值对,键不能重复,值可以重复。无序:元素的存储顺序不一致。键和值是一一对应的:每个键只能找到自己对应的值。Map集合在Java中有着广泛的应用,不同的实现类有着不同的特点和适用场景。理解这些实现类的特点和底层原理,可以帮助我们更好地选择和使用Map集合,提高代码的性能和可读性。希望本文能够帮助大家更好地理解和掌握Java中Map集合的知识。如果有任何问题或建议,欢迎在评论区留言讨论。
2025-04-24 17:32:07
392
原创 Java数据结构:树与Set集合详解
无序:元素的存储顺序不一致。不重复:可以去除重复元素。无索引:没有带索引的方法,不能使用普通遍历,也不能通过索引来获取元素。
2025-04-24 17:28:26
708
原创 常见数据结构与泛型学习笔记
数据结构是计算机底层存储、组织数据的方式。它决定了数据之间以什么方式排列在一起。选择合适的数据结构可以提高程序的运行效率和存储效率。
2025-04-24 17:15:12
437
原创 leetcode算法5-双指针-移动0
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。
2025-04-24 15:31:13
197
原创 leetcode算法4-字母异位词分组
给你一个字符串数组,请你将组合在一起。可以按任意顺序返回结果列表。是由重新排列源单词的所有字母得到的一个新单词。strs =
2025-04-24 14:39:16
319
原创 Java 集合框架与迭代器详解
Java集合框架提供了丰富的数据结构和操作方法,使得数据处理更加高效和灵活。迭代器和增强for循环是遍历集合的常用方式,各有优缺点。迭代器适用于需要在遍历过程中修改集合的场景,而增强for循环则适用于简单的遍历操作。理解这些特性的工作原理和使用方法,可以帮助开发者编写更高效、更可读的代码。
2025-04-24 13:26:25
646
原创 Java Lambda 表达式与方法引用详解
Lambda 表达式和方法引用是 Java 8 引入的重要特性,它们提供了一种简洁的方式来处理函数式编程。通过这些特性,我们可以编写更加简洁和易于理解的代码。无论是定义简单的函数还是引用已有的方法,Lambda 表达式和方法引用都能帮助我们提高代码的可读性和可维护性。希望本文的介绍和示例能帮助你更好地理解和使用 Lambda 表达式和方法引用。在实际开发中,合理利用这些特性可以显著提升开发效率和代码质量。
2025-04-24 13:25:22
435
原创 java算法与排序笔记整理
可以通过实现Comparator接口来自定义排序规则。示例@Override// 降序排序});通过本文的整理和优化,我们对算法和排序有了更深入的理解。算法和排序是计算机科学中的基础,掌握这些知识对于解决实际问题至关重要。希望这些笔记能帮助读者更好地应用这些知识。
2025-04-24 13:24:07
798
原创 Java自动装箱与拆箱机制详解
包装类是基本数据类型对应的对象类型。例如,int类型对应的包装类是Integerdouble类型对应的包装类是Double,等等。
2025-04-24 13:22:33
494
原创 Java日期和时间API整理
Java 8 引入了新的日期和时间API,这些API比旧的Date和Calendar类更加强大和灵活。以下是对Java日期和时间API的整理,包括Date类、Calendar类、LocalDate类、类、类、Instant类、Duration类和Period类等。
2025-04-24 13:21:50
330
原创 Java正则表达式与网络爬虫示例
在Java开发中,正则表达式和网络爬虫是非常实用的技术。本文将对正则表达式进行详细整理,并提供一个简单的网络爬虫示例,帮助大家更好地理解和应用这些技术。
2025-04-23 19:12:52
393
原创 常用API详解2
在Java开发中,掌握一些常用的API对于提高开发效率和代码质量非常重要。本文将对Objects类、BigInteger类和BigDecimal类进行详细整理,帮助大家更好地理解和使用这些API。
2025-04-23 19:08:14
417
原创 常用API详解1
Math类是Java中的一个工具类,提供了丰富的数学运算方法,以下是一些常用的Mathabs(int a)54.03.045ab8.0random()0110.345在开发过程中,可以通过快捷键Ctrl+B查看方法的来源,通过Alt+Enter补全代码,提高开发效率。
2025-04-23 19:03:17
753
原创 Java 抽象类、接口、适配器模式与内部类
定义接口是一种规则,是对行为的抽象。使用interface关键字定义。格式:public interface 接口名 {}接口的特点接口不能实例化。接口和类之间是实现关系,使用implements关键字。格式:public class 类名 implements 接口名 {}示例@Override定义在一个类内部定义的类称为内部类。内部类表示的事物是外部类的一部分,单独没有意义。访问特点内部类可以直接访问外部类的成员,包括私有成员。
2025-04-23 18:40:26
891
原创 Java 静态特性、循环控制与继承基础
精准跳出循环:终止所有循环:二、静态特性(一) 修饰符静态变量:静态方法:(二)静态变量与静态方法的特点静态变量:静态方法:非静态方法:特点:示例:调用方式:(四) 方法特点:示例:三、继承(一)继承的概念定义:用法:(二)使用继承的场景类与类之间存在相同的内容。满足“子类是父类的一种”。例如: 是 的一种。(三)继承的特点单继承:根类:(五)代码书写顺序从上往下写:
2025-04-23 18:33:23
906
原创 Java 字符串操作与集合基础
集合是一种长度可变的容器,可以自动扩容。只能存储引用数据类型,如果要存储基本数据类型,需要使用包装类。泛型用于限定集合中存储的数据类型,格式为<>。例如:ArrayList<String> list = new ArrayList<>();
2025-04-23 18:31:51
1734
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅