- 博客(81)
- 收藏
- 关注
原创 算法学习29
给你单链表的头结点head,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。[3,4,5]链表只有一个中间结点,值为 3。[4,5,6]该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。
2025-11-15 16:18:48
89
原创 算法学习 28
给定一个单链表L的头节点head,单链表L表示为:请将其重新排列后变为:不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。[1,4,2,3]
2025-11-14 19:25:06
313
原创 算法学习 28
给你单链表的头结点head,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。[3,4,5]链表只有一个中间结点,值为 3。[4,5,6]该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。
2025-11-13 15:47:20
307
原创 Java反射
Java反射(Reflection)是Java语言提供的一种能够在运行时动态获取类信息并操作类属性、方法的机制(获取类型信息的能力。
2025-11-12 16:11:41
682
原创 算法学习 27
Alice 有n枚糖,其中第i枚糖的类型为。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。医生建议 Alice 要少摄入糖分,只吃掉她所有糖的n / 2即可(n是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可能吃到最多不同种类的糖。给你一个长度为n的整数数组candyType,返回: Alice在仅吃掉n / 2枚糖的情况下,可以吃到糖的种类数。3Alice 只能吃 6 / 2 = 3 枚糖,由于只有 3 种糖,她可以每种吃一枚。2。
2025-11-12 15:56:39
252
原创 Java IO流
字符输入流(Reader)用于读取文本数据,常用类包括 FileReader 和 BufferedReader。字符输入流用于从数据源(如文件、字符串等)读取字符数据。字符输出流用于将字符数据写入目标(如文件、控制台等)。OutputStream是所有字节输出流的父类,定义了所有字节输出流都具有的共同特征。是专门用于读取文件中的数据,通过它将目标设备上的数据读入到程序。是所有字节输入流的抽象基类,它定义了读取字节数据的基本方法。是门用于读出文件中的数据,通过它将数据从程序输出到目标设备。
2025-11-10 16:54:10
763
原创 算法学习 26
给你两个整数数组nums1和nums2,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。[2,2][4,9]
2025-11-10 16:46:10
239
原创 Object超类和异常
hashCode():返回对象的hash值(将对象的地址返回成一个int类型的值)重写equals方法必须重写hashCode方法:原因:hashcode是计算该对象的地址返回一个int值,该值决定地址存在的位置,重写equals方法不能保证和Object方法中的equals方法一致。当使用HashMap时,put方法会先通过hashCode定位对象的存储位置,再用equals判断是否存在重复键。若两个逻辑相等的对象(equals返回true)的hashCode。
2025-11-09 13:50:41
805
原创 抽象类和接口
抽象类虽然不能实例化,但可以通过父类引用指向子类对象的方式实现多态:子类继承抽象类时: 2.接口接口在Java中是一种完全抽象的类型定义,其核心特点主要体现在以下几个方面: 抽象类是对类的一种抽象,本身是一种设计模板;接口是对行为的抽象是一种行为抽象抽象是用来提取子类当中的共性代码 接口重点用于隐藏和封装接口的方法默认是public,所有方法都是抽象方法,在接口中不能有方法的实现(Java 8开始接口方法可以
2025-11-08 22:20:18
636
原创 算法学习 24 使用集合解决问题
给你一个数组nums和一个值val,你需要移除所有数值等于val的元素。元素的顺序可能发生改变。然后返回nums中与val不同的元素的数量。假设nums中不等于val的元素数量为knumsnumskvalnumsnumsk评测机将使用以下代码测试您的解决方案:// 输入数组// 要移除的值// 长度正确的预期答案。// 它以不等于 val 的值排序。// 调用你的实现// 排序 nums 的前 k 个元素i++) {如果所有的断言都通过,你的解决方案将会。
2025-11-08 12:16:54
899
原创 算法学习 23
给你一个有序数组nums,请你删除重复出现的元素,使得出现次数超过两次的元素,返回删除后数组的新长度。不要使用额外的数组空间,你必须在并在使用 O(1) 额外空间的条件下完成。为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下://是以“引用”方式传递的。也就是说,不对实参做任何拷贝// 在函数里修改输入数组对于调用者是可见的。// 根据你的函数返回的长度, 它会打印出数组中的所有元素。
2025-11-07 15:34:27
604
原创 Map集合
使用TreeMap时,放入的Key必须实现Comparable接口。String、Integer这些类已经实现了Comparable接口,因此可以直接作为Key使用。作为Value的对象则没有任何要求。对Integer来说,其自然排序就是数字的升序;对String来说,其自然排序就是按照字母表排序。TreeMap中的元素默认按照keys的自然排序排列。可知,之前加入的value已被覆盖,前面的观点得证。
2025-11-06 15:08:08
822
原创 List集合
核心特点:ArrayList底层是一个object类型的数组,所有输出的是一个数组型式的数据,获取数据使用.get()方法,下标从0开始。.add()方法可以之间在里面写入添加的内容,也可以先确定添加内容的位置.add(int index, Object element)。!!!这不是覆盖,当前位置的内容和后面的内容都会自动向后移位。替换指定位置的元素,索引从零开始,替换了“wd”。boolean add(Object element) 它将元素附
2025-11-06 12:57:50
831
原创 算法学习 22
给你两个的链表,表示两个非负的整数。它们每位数字都是按照的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。[7,0,8][0]
2025-11-06 11:20:06
123
原创 算法学习 22
给你一个下标从开始的数组mountain。你的任务是找出数组mountain中的所有。以数组形式返回给定数组中的下标,。[]mountain[0] 和 mountain[2] 不可能是峰值,因为它们是数组的第一个和最后一个元素。mountain[1] 也不可能是峰值,因为它不严格大于 mountain[2]。因此,答案为 []。[1,3]mountain[0] 和 mountain[4] 不可能是峰值,因为它们是数组的第一个和最后一个元素。
2025-11-05 15:07:19
262
原创 算法学习 20
给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回true;否则,返回false。整数n是 4 的幂次方需满足:存在整数x使得n == 4xn = 16truen = 5falsen = 1true。
2025-11-03 16:15:27
286
原创 final关键字、栈和泛型
泛型(Generics)是程序设计语言的一种特性,允许程序员在定义类、接口或方法时使用类型参数(Type Parameters)。这些类型参数在使用时会被具体的类型所替换。
2025-11-02 14:46:12
887
原创 算法学习 19
罗马数字是通过添加从最高到最低的小数位值的转换而形成的。VIIVXIIXIVIXXLXCCDCMIXCMVLD给定一个整数,将其转换为罗马数字。num = 37493000 = MMM 由于 1000 (M) + 1000 (M) + 1000 (M)700 = DCC 由于 500 (D) + 100 (C) + 100 (C)40 = XL 由于 50 (L) 减 10 (X)9 = IX 由于 10 (X) 减 1 (I)注意:49 不是 50 (L) 减 1 (I) 因为转换是基于小数位。
2025-11-02 13:00:43
249
原创 Java 多态
在面向对象编程中,父类的引用类型指向子类对象是多态性的一种重要体现。这种机制允许我们编写更加通用和灵活的代码。多态的实现需要基于继承关系,通常表现为子类对父类方法的重写。继承的核心价值在于代码复用,允许子类直接使用父类的公共属性和方法。由于父类方法可能不完全适配子类需求,可以通过方法重写来实现定制化。重写要求:方法名、参数列表和返回值类型必须与父类保持一致。当调用子类对象时,系统会自动优先执行子类重写后的方法实现。
2025-10-30 23:34:36
628
原创 java static关键字
使用static修饰的内容属于类本身非static修饰的内容属于对象实例当方法调用完成后,对应的栈帧会被弹出非静态方法的信息存储在方法区的元空间中run()run()main()eat()main()eat()static。
2025-10-30 15:21:37
899
原创 算法学习 17
假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?n = 22有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶n = 33有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶。
2025-10-30 15:07:43
153
原创 算法学习 16
给定一个表示的整数数组digits,其中digits[i]是整数的第i位数字。这些数字按从左到右,从最高位到最低位排列。这个大整数不包含任何前导0。将大整数加 1,并返回结果的数字数组。[1,2,4]输入数组表示数字 123。加 1 后得到 123 + 1 = 124。因此,结果应该是 [1,2,4]。[4,3,2,2]输入数组表示数字 4321。加 1 后得到 4321 + 1 = 4322。因此,结果应该是 [4,3,2,2]。[1,0]输入数组表示数字 9。
2025-10-29 12:28:55
196
原创 算法学习 15
给你一个整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
2025-10-28 13:57:58
200
原创 java类与对象
C语言是一种经典的面向过程编程语言,由丹尼斯·里奇(Dennis Ritchie)于1972年在贝尔实验室开发。面向过程编程(Procedural Programming)是一种以过程为中心的编程范式,它将程序视为一系列可调用的函数或过程的集合,强调按照一定的步骤顺序执行任务。
2025-10-26 23:21:20
721
1
原创 java字符串
在 Java 中,"+"运算符实际上会调用 StringBuilder 的 append() 方法来实现字符串拼接。StringBuilder 在堆内存中分配新的存储空间来完成数组拼接操作(无法直接在原数组上进行拼接)。拼接完成后会调用其 toString() 方法,该方法内部实现是 new String(value)。这样就会在堆内存中创建新的字符串对象,指向字符串常量池中对应的字符串值。因此,"c"和"d"虽然内容相同,但会指向不同的内存地址。
2025-10-26 15:58:57
731
原创 算法学习 13
给你一个整数数组nums,其中元素已经按排列,请你将其转换为一棵 平衡 二叉搜索树。[0,-10,5,null,-3,null,9] 也将被视为正确答案:[3,1][1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。
2025-10-26 15:34:07
250
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅