自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 day8 || 344.反转字符串 541.反转字符串|| 剑指offer.05.替换空格 151.反转字符串里的单词 剑指offer58.|| 左旋转字符串

接下来,代码从字符串的末尾开始遍历,跳过空格并记录单词的边界,然后将每个单词添加到 newArr 中,并在每个单词的末尾添加一个空格。它使用一个StringBuilder对象来构建新字符串,遍历输入字符串中的每个字符,如果字符是空格,则将"%20"添加到StringBuilder中,否则将字符本身添加到StringBuilder中。具体来说,交换两个字符的方法是使用异或运算,将两个字符的ASCII码进行异或,得到的结果再异或其中一个字符,最后再异或另一个字符,就可以完成交换。然后,交换反转组中的字符。

2023-04-27 21:11:22 82

原创 DAY06 || 454.四数相加|| 383.赎金信 15.三数之和 18.四数之和

在第三个循环中,我们使用双指针技术来查找第三个和第四个元素,使它们的和等于目标整数。具体来说,函数使用两个for循环遍历nums1和nums2中的元素,将它们相加得到temp,然后将temp作为key,出现次数作为value存入map中。接着,遍历nums3和nums4中的元素,将它们相加得到temp,然后在map中查找是否存在0-temp的key,如果存在,则将对应的value累加到结果res中。然后使用两个指针,一个从第二个元素开始,另一个从数组的末尾开始,找到其余两个元素,使它们的和等于目标值。

2023-04-25 23:27:14 74

原创 DAY06 || 242.有效的字母异位词 349.两个数组的交集 202.快乐数 1.两数之和

首先创建一个大小为26的整数数组“record”,用于跟踪第一个字符串“s”中每个字符的频率。第一个“for”循环遍历“s”中的每个字符,并增加“record”中相应计数。第二个“for”循环遍历第二个字符串“t”中的每个字符,并减少“record”中相应计数。首先检查两个输入数组是否为空,如果是,则返回一个空数组。然后,遍历数组,并对于每个元素,计算目标值与该元素之间的差。在这种情况下,将两个元素的索引存储在结果数组中并返回。否则,创建一个HashMap来将数组元素存储为键,将它们的索引存储为值。

2023-04-24 23:19:36 72

原创 DAY03 || 24.两两交换链表中的节点 19.删除链表中的倒数第n个节点 面试题02.07.链表相交

如果h1和h2不相等,则方法将h1移动到headA中的下一个节点,将h2移动到headB中的下一个节点。如果h1或h2到达其各自链表的末尾,则将其设置为另一个链表的头。本题首先判断链表是否为空,然后设置两个指针,一个慢指针和一个快指针,快指针先走n步。本题使用了一个哨兵节点 newHead,它的下一个节点是原链表的头节点 head。然后使用指针 p 遍历链表,每次交换 p 的下一个节点和下下个节点,然后将 p 指向交换后的第二个节点。最后返回哨兵节点的下一个节点,即交换后的链表头。

2023-04-22 23:38:53 83 1

原创 DAY03 || 203.移除链表元素 206.反转链表

prev指向当前节点的前一个节点,cur指向当前节点,temp指向当前节点的下一个节点。dummy节点是一个虚拟节点,它的下一个节点是原始链表的头节点。cur节点是当前正在处理的节点。如果当前节点的值等于给定值,则将pre节点的下一个节点设置为当前节点的下一个节点,从而删除当前节点。否则,将pre节点设置为当前节点,并将当前节点设置为下一个节点。在每次递归中,将head的下一个节点反转,并将head的下一个节点的下一个节点设置为head。最后,该方法返回dummy节点的下一个节点,即新链表的头节点。

2023-04-21 22:58:34 145 1

原创 DAY02 | 977.有序数组的平方 209.长度最小的子数组 59.螺旋数组

首先,创建一个长度为n + 1的前缀和数组sums,其中sums[i]表示nums数组中前i个元素的和。对于每个子数组,计算目标值target,该值等于s加上前i-1个元素的和。如果找到了target,则计算子数组的长度,并将其与当前最小长度进行比较。如果没有找到target,则使用返回的插入点计算子数组的长度,并将其与当前最小长度进行比较。利用双指针从数组两头开始遍历数组,由于原数组两头的元素一定是新数组较大元素,因此先找两头进行比较,并在每次比较后,将较大的元素位置移动一格,再与另一侧元素进行比较……

2023-04-21 00:31:11 299 1

原创 DAY01|leetcode 704.二分查找 35.搜索插入位置 27.移除元素

本题为双指针,即指针一快一慢,当快指针搜索到目标值时,令慢指针停下,从而使二者之间有了差距,再将快指针后续搜索的值赋给慢指针,即可实现元素的移除。1.上述代码中第一个为最初自己写的版本,下面为标答,可以看出二者最大的差别为是否使用二分法,事实证明,二分法确实比暴力搜索更快更省内存;双指针的方法为逆向法,即正向思维为搜索到目标值,进行移除,而逆向思维为搜索非目标值,直接对目标值进行覆盖。2.如图代码为左闭右闭区间,左右为数组两端,需要注意后面low与high分别需要加减1。p.s 元素的移除本质上是覆盖。

2023-04-19 22:38:49 561 1

空空如也

空空如也

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

TA关注的人

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