自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 两数之和II-

定义两个指针left和right,两数之和与target进行比较,如果大于target证明需要减小,right向右移,如果小于target证明需要增大,left向左移。这道题和两数之和的区别是,题目中多了有序数组的条件,当然也有特殊的要求:只使用常量级的额外空间。原来那种方法通过for循环进行遍历,空间复杂度为O(n)。使用双指针法会解决这个问题。

2025-01-19 10:48:43 275

原创 两数之和----Java算法

两数之和----哈希法求解

2025-01-19 10:31:56 271

原创 每日算法----两个数组的交集(Java)

【代码】每日算法----两个数组的交集(Java)

2025-01-01 10:17:31 152

原创 每日算法----搜索插入位置(Java)

【代码】每日算法----搜索插入位置(Java)

2024-12-31 10:42:59 123

原创 每日算法----有效的字母异位词

定义一个长度为26的数组,遍历第一个数组时每遍历一个字符,在对应位置+1,之后遍历第二个数组,每遍历一个字符,在对应位置-1,最后遍历数组,如果数组中有存在不等于0的,则说明不是字母异位词。

2024-12-31 10:34:56 977

原创 每日算法----删除链表中的节点

【代码】每日算法----删除链表中的节点。

2024-12-30 09:54:40 166

原创 每日算法----寻找重复数(Java)

这个题看注释就可以了。

2024-12-29 19:24:45 223

原创 每日算法----环形链表II(Java)

从起点开始算a+n圈环形就是环形链表的起始节点所以,此时慢指针在加上a的长度就可以找到起始节点,可以将快指针变成头节点,每次和慢指针一样都只走一步。此时快指针走的路程是慢指针2倍。慢指针= 快指针-慢指针 = n圈环形 ,这里的n的值和上面n不一样,你们懂我意思就可以。在第一次快慢指针相等时,a是到环形前的节点个数,k是离环形节点有多远。本题在上个环形链表的基础上增加了难度,让找其环形链表的第一个节点。还是原先的思路,定义快慢指针。快指针走了a+n圈环形+k。慢指针走了a+m圈环形+k。

2024-12-29 19:18:26 617

原创 每日算法----环形链表(Java)

慢指针一次走一步,快指针一次走两步,环形链表,最后一定会碰到。

2024-12-28 10:49:03 292

原创 每日算法----链表相交(Java)

从这个特殊情况可以看出来,我们需要两个链表在相交前的节点个数是相同的,对于两个相交节点不同的情况,当链表A遍历完后,我们让最后一个节点指向链表B,同样的当链表B遍历完之后,我们让链表B的最后一个节点指向链表A。需要找到相交节点,特殊情况两个链表在相交前的节点个数是相同的,这种情况我们只需用两个指针同时遍历两个链表,当currA==currB时,此时就找到了相交节点。相交节点为8,前面节点数目相同,这块需要注意的是如果只是当前的值相同不可以,链表是有两个属性的,val和next同时满足才能证明链表相等。

2024-12-28 10:17:31 797

原创 每日算法--x的平方根(Java)

【代码】每日算法--x的平方根(Java)

2024-12-27 21:04:18 108

原创 每日算法----删除链表的倒数第 N 个结点(Java)

定义快慢指针,快指针先走n步,在和慢指针一起走,当快指针为空时,慢指针刚好为倒数第n个。还是需要哨兵节点 new ListNode(-1,head)

2024-12-27 10:14:10 396

原创 每日一算法----交换链表(Java)

【代码】每日一算法----交换链表(Java)

2024-12-26 18:34:15 239

原创 每日一算法----二分查找(Java)

/if (nums[middle] > target) right 更新为 middle,因为当前nums[middle]不等于target,// 因为当前这个nums[middle]一定不是target,那么接下来要查找的左区间结束下标位置就是 middle - 1。// 去左区间继续寻找,而寻找区间是左闭右开区间,所以right更新为middle,即:下一个查询区间不会去。//if (nums[middle] > target) right 要赋值为 middle - 1,

2024-12-26 10:12:17 441

原创 反转链表----迭代和递归(Java)

定义了prev==null,通过不断移动prev,和curr 去实现反转(每一次赋值后,需要将当前节点赋值给prev,因为此时当前节点,就是下一个节点的上一个节点)

2024-12-25 18:27:49 385

原创 每日一算法----反转链表(java)

创建一个新链表,遍历之前链表,每次将获取到的节点,作为下次获取到的节点的下一个节点。

2024-12-25 18:23:29 428

原创 每日一算法----设计链表(java)

【代码】每日一算法----设计链表。

2024-12-24 12:56:21 679

原创 每日一算法----移除链表元素(java)

【代码】每日一算法----移除链表元素。

2024-12-23 18:05:47 205

原创 java基础核心--三大特性之一:多态

多态是面向对象编程(OOP)中的一个重要概念。它指的是同一个操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。简单来说,就是用同一种方式来调用不同对象的同名方法,但这些方法的具体实现可以因对象的类型不同而不同。

2024-12-23 15:57:12 340

原创 java基础核心--三大特性之一:继承

1. 什么是继承?是面向对象软件技术中的一个概念。它使得Java 语言是非常典型的面向对象的语言,在 Java 语言中。我们举个例子:人有不同的身份,比如说老师,学生。人会跑,老师,学生都会跑。这时学生和老师都继承人这个类,就都用有跑这个方法了。2. 为什么需要继承?如果仅仅只有两三个类,每个类的属性和方法很有限的情况下确实没必要实现继承,但事情并非如此,事实上一个系统中往往有很多个类并且有着很多相似之处,比如猫和狗同属动物,或者学生和老师同属人。

2024-12-22 21:39:00 413

原创 java基础核心--三大特性之一:封装

封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。好处:尽可能的隐藏内部的实现细节封装确实可以使我们更容易地修改类的内部实现,而无需修改使用了该类的代码封装可以对成员变量进行更精确的控制

2024-12-21 21:20:22 400 1

空空如也

空空如也

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

TA关注的人

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