自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 LeetCode小白刷题0013-热题100之回文链表(简单)

执行第二步的最佳方法取决于使用的语言。在 Python 中,很容易构造一个列表的反向副本,也很容易比较两个列表。而在其他语言中,就没有那么简单。正确的比较方式是:node_1.val == node_2.val,而 node_1 == node_2 是错误的。在编码的过程中,注意我们比较的是节点值的大小,而不是节点本身。先复制到数组的原因是,链表更适于增删,而数组更适于改查。,请你判断该链表是否为回文链表。第一步,复制到数组,第二步,判断是否回文。时间复杂度:O(n)、空间复杂度:O(n)

2024-03-04 19:53:53 333

原创 LeetCode小白刷题0012-热题100之反转链表(简单)

在遍历链表时,将当前节点的 next\textit{next}next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。其中,第三个指针(蓝色的)不必用单独的变量来记录,只需在每次指针反转前暂存一下即可。注意两指针 prev、curr 初始值分别为 null、head.,请你反转链表,并返回反转后的链表。

2024-03-01 01:24:12 330

原创 《Effective Java》读书笔记-1

名字携带。

2024-02-29 20:59:28 907

原创 《java编程思想》读书笔记-1

1. 程序可以通过添加新类型的对象使自身适用于某个特定问题。2. 万物皆可对象:对象可存储数据、可在自身执行操作; 程序是对象的集合,他们通过发送消息(方法调用请求)来告知彼此所要做的; 每个对象都有自己的由其他对象所构成的存储,即 可以通过创建包含现有对象的包的方式来创 建新类型的对象; 每个对象都拥有其类型; 某一特定类型的所有对象都可以接收同样的消息(有同样的方法)3. 对象具有状态(由对象内部数据反映)、行为(方法)、标识(每一个对象在内存中都有唯一的地址)。1.

2024-02-29 16:52:35 815

原创 LeetCode小白刷题0011-热题100之相交链表(简单)

如果两链表没有交点,两指针一定同时变为null,无论有无交点,当两指针第一次相等时,即可作出判断。关于为什么在遍历链表 headB 时 “如果当前节点在哈希集合中,则后面的节点都在哈希集合中,即从当前节点开始的所有节点都在两个链表的相交部分”:由。创建两个指针 pA 和 pB,初始时分别指向两个链表的头节点 headA 和 headB,然后将两个指针依次遍历两个链表的每个节点。其中 m 和 n 是分别是链表 headA 和 headB 的长度。原理:a+c+b = b+c+a 、m+n = n+m。

2024-02-29 08:50:01 961

原创 LeetCode小白刷题0010-热题100之合并区间(中等)

正确性(反证法):试想,区间按左端点排序后,有两个不相邻的区间(假设第 k 和 第 k+2 个区间)可合并,则一定有第 k 个区间的右端点大于或等于第 k+2 个区间的左端点,而 第 k+1 个区间的左端点是一定小于或等于第 k+2 个区间的左端点的,则一定有:第 k 个区间的左端点大于或等于第 k+1 个区间的左端点,那么第 k 个区间与第 k+1 个区间一定是能合并的,k 与 k+y 中间的若干区间与第 k 个区间都是能合并的。一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。

2024-02-28 20:19:35 343

原创 LeetCode小白刷题0009-热题100之最大子数组和(中等)

其中 leftSum 是左子数组的最大子数组和, rightSum 是右子数组的最大子数组和, midSum 是从 m 分别向左右两边扩展得到的最大和子数组 mlSum 与 mrSum 的和。因为当我们把一个数组以 m 为界分隔时,该数组的最大和子数组只可能出现在三个位置:左子数组、右子数组、横跨 m 的子数组。如果子数组包含空数组,极端情况下,例如当数组全为负数时,空子数组和最大,为0。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。

2024-02-28 19:29:57 336

原创 LeetCode小白刷题0008-热题100之找到字符串中所有字母异位词(中等)

先初始化pCount和sCount,并对起点0做判断,之后窗口后移时只需修改首尾即可,起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是 "ab" 的异位词。起始索引等于 2 的子串是 "ab", 它是 "ab" 的异位词。初始化窗口与移动窗口两部分分离,使得移动变得简单,体现了对。的子串,返回这些子串的起始索引。不考虑答案输出的顺序。指由相同字母重排列形成的字符串(包括相同的字符串)。

2024-02-28 18:22:14 334

原创 LeetCode小白刷题0007-热题100之无重复字符的最长子串(中等)

因为:假设我们已经枚举得出 以第 k 个字符作为起点的无重复子串的终点是第 R(k) 个字符, 当我们枚举以第 k+1 个字符作为起点的无重复子串时,可以确定的是 第 k+1 到第 Rk 个字符一定是无重复的,那么 R(k+1)一定大于 R(k)。在每一步的操作中,我们会将左指针(第一层循环变量)向右移动一格(加1),表示 我们开始枚举下一个字符作为起始位置,然后我们可以不断地向右移动(加1)右指针(第二层循环变量),但。在移动结束后,这个子串就对应着 以左指针开始的,不包含重复字符的最长子串。

2024-02-28 14:01:19 406

原创 LeetCode小白刷题0006-热题100之三数之和(中等)

while括号中用 >target 而不是 =target : 如果用 =,在左右指针重合时只能判断对于当前这个 b没有对应的 c ,没法判断--->//如果指针重合,随着 b 后续的增加,就不会有满足 a+b+c=0 并且 b

2024-02-28 10:51:52 809

原创 LeetCode小白刷题0005-热题100之盛最多水的容器(中等)

左右指针代表容器的边界,在初始时,左右指针分别指向数组的左右两端,每次先计算当前容器的盛水量然后。决定的,两个影响因素,只有知道了所有组合的容纳水量才能确定谁是最大的,但在计算过程中,)会变小,整体肯定变小,这时还不如取它的前一个状态,即 这一状态组合是可以直接跳过的;)仍然会变小,但整体可能变大,这时不能直接跳过,需明确计算出来;,不确定性大大增加,不能跳过某些组合,还可能造成遗漏。一开始就想暴力枚举,一点做题的基本素质都没有,是我了。两个指针指向的数字中较小值∗指针之间的距离。)可能变大,第二部分(

2024-02-28 08:52:12 371

原创 LeetCode小白刷题0004-热题100之移动零(简单)

数组最终形态是一串非0数字后跟一串0,且非0数字串的相对位置不变。为达目标,算法应该从前往后依次将非0数字移到前面合适的位置(紧接在“原数组中前面紧邻的非0数字”之后。由于要求O(N)的时间,只能是扫描一次,所以“紧接原数组中前面紧邻的非0数字之后”即“已经移动好的非0串的最后一位的后一位”),于是需要明确 “已经移动好的非0串的最后一位的后一位”在哪、当前需要确认位置的数字是谁,基于这两个点,考虑采用。左指针(已经移动好的非0串的最后一位的后一位。,这时的左右指针满足其各自应有的性质。

2024-02-28 08:08:49 345

原创 java集合框架常用知识总结

存储的元素是单个的存储的元素是键值对这两个被称作根接口。。再往下是一些抽象类,最后是具体实现类,常用的有、LinkedHashMap 等等。

2024-02-27 23:29:23 817

原创 LeetCode小白刷题0003-热题100之最长连续序列(中等)

但仔细分析这个过程,我们会发现其中执行了很多不必要的枚举,如果已知有一个 x,x+1,x+2,⋯ ,x+y的连续序列,而我们却重新从 x+1,x+2 或者是 x+y处开始尝试匹配,那么得到的结果肯定不会优于枚举 x为起点的答案,因此我们在外层循环的时候碰到这种情况跳过即可。是否存在,假设最长匹配到了 x+y,那么以 x 为起点的最长连续序列即为 x,x+1,x+2,⋯ ,x+y,其长度为 y+1,我们不断枚举并更新答案即可。空间复杂度:O(n)。哈希表存储数组中所有的数需要 O(n) 的空间。

2024-02-27 21:22:40 524

原创 LeetCode小白刷题0002-热题100之字母异位词分组(中等)

两个字母之间没有区分,而数字10和数字1、0之间的牵连导致某种巧合的出现。,导致分组错误,因此该种构成键的方式有漏洞,只需在构成键时。字符串转为字符数组后可直接Arrays.sort排序。2.想不到第二种方法,经提示也会有漏洞。错误之处在于构成键sb时,这种构成方式。加上每个字母作为字母个数的间隔。测试用例通过123/126,不同测试用例形成的键是相同的。

2024-02-27 20:45:39 325

原创 LeetCode小白刷题0001-热题100之两数之和(简单)

因为 位于该元素之前的元素,已经与其本身后面所有元素比对过了,自然也与当前元素比对过了。,只会对数组中每个元素依次遍历除它本身以外的其余元素,看二者是否符合“和为target”的条件,---避免空指针异常:如果一个方法期望接收一个数组作为参数,但传入的是。---方便遍历:虽然遍历一个空数组不会执行任何循环体,但使用。---代码一致性:有时候在代码中需要处理空数组的情况,使用。创建一个长度为0的数组可以方便地进行遍历操作,而且不会引发任何异常。遍历一个空数组会在循环中不执行任何操作,因为数组中没有元素。

2024-02-27 19:02:25 366

空空如也

空空如也

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

TA关注的人

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