- 博客(18)
- 收藏
- 关注
原创 字符串02
字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。例如,对于输入字符串 "abcdefg" 和整数 2,函数应该将其转换为 "fgabcde"。解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。输出:输出共一行,为进行了右旋转操作后的字符串。输出: "world!
2024-06-17 19:38:03
239
原创 字符串01
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。2.对统计的个数进行字符串扩充,一个数字扩充5个长度,因为number虽然长度是6,但是原本数字就有一个长度所以只需扩充5个长度即可。编写一个函数,其作用是将输入的字符串反转过来。不要给另外的数组分配额外的空间,你必须。,从字符串开头算起,每计数至。2.对前k个进行翻转。
2024-06-17 18:34:02
366
原创 力扣1. 两数之和
3.没有找到就将数组遍历到的数存到map中map.insert(pair(nums[i],i))力扣的第一题,当时我写这个的时候用的暴力哈哈哈哈。现在我介绍一个高效率的哈希算法。但是,数组中同一个元素在答案里不能重复出现。,如果搜索成功就返回两个的下标return {iter->second,i}。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。1.通过遍历计算数组中每一个元素的另一个加数。这题因为涉及到两个值的操作所以用map。整数,并返回它们的数组下标。
2024-06-12 11:47:15
556
原创 力扣202.快乐数
如果有重复的数就会出现循环就不可能最后变成1,类似于一个周期例如sinx函数不论x怎么变函数值始终在-1和1之间循环。如果有重复的数就会出现循环就不可能最后变成1,类似于一个周期例如sinx函数不论x怎么变函数值始终在-1和1之间循环。换句话说就是出现重复的结果就不是快乐数,没有重复就一直计算直到出现1。,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。2.搜索nums_set中是否出现重复的sum,出现重复返回false。1.先检查sum是否为1,为1返回true。
2024-06-12 11:16:50
248
原创 力扣349.两个数组的交集
直接使用set 不仅占用空间比数组大,而且速度要比数组慢,set把数值映射到key上都要做hash计算的。3.在nums_set中对nums2的元素进行搜索,如果搜索到就把该值插入到结果容器res中。不要小瞧 这个耗时,在数据量大的情况,差距是很明显的。遇到哈希问题我直接都用set不就得了,用什么数组啊?2.将nums1数组放到nums_set中。1.定义两个容器res和nums_set。4.将容器res转化为数组再返回。输出结果中的每个元素一定是。[4,9] 也是可通过的。
2024-06-12 10:54:40
246
原创 力扣242. 有效的字母异位词
将Hash数组中s对应的字母频率,按照t对应的频率进行减少,如果对应位置上的值都为0那么两个字符串是有效字母异位。因为26个字母在ASCLL中是连续的,用s[i]-'a'刚好可以在哈希数组Hash中按照顺序对应每一个索引位置。先将字符串s的字母记录到Hash数组中对应的位置 Hash[s[i]-'a']++,遍历Hash数组检查每一个位置的值是否为0,为0返回true,反之返回false。如果规定了数值大小就可以用数组来实现哈希,因为哈希表的大小是有限的。2.最优的方法是使用哈希数组的方法。
2024-06-12 10:30:35
213
原创 力扣209. 长度最小的子数组
2.首先移动j,并将j位置的值进行相加sum+=nums[j];如果和刚好大于等于目标值x,就将这段数组的长度记录到res中后面比较选出最小的返回,然后开始改变滑动窗口的大小,将i向前移动一个元素并将sum减去之前i位置的值sum-=nums[i++];这个地方是改变滑动窗口大小的精髓。如果不存在符合条件的子数组,返回。是该条件下的长度最小的子数组。1.定义滑动窗口的起始位置i和j。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。
2024-06-10 15:33:15
319
原创 力扣977. 有序数组的平方
2.两个指针的数组值先平方比较大小nums[i] * nums[i] < nums[j] * nums[j],将大的平方值赋值到结果数组的最后一个位置size-1上,因为。1.分别在数组的第一个元素nums[0]上定义一个指针j和最后一个元素nums[size-1]位置上定义一个指针p,还有一个结果数组res以及其指针k。,再将j向后移动,p往前移动,结果数组的指针k向前移动,进行同样的比较赋值操作直到遍历结束。利用双指针和一个整数数组的平方最大值只可能在数组的两个端点上的规律进行操作。
2024-06-10 15:21:32
178
原创 力扣27. 移除元素
就让快指针fast向前继续移动到不相等的元素位置,慢指针不动,然后将快指针的元素赋值到慢指针所指向的地方nums[slow++] = nums[fast];最后继续同时移动两个指针并把快指针不等于目标元素的元素赋值到慢指针所指向的地方nums[slow++] = nums[fast];就让快指针fast向前继续移动到不相等的元素位置,慢指针不动,然后将快指针的元素赋值到慢指针所指向的地方nums[slow++] = nums[fast];= x,所以还是返回慢指针的值即为删除后数组的长度。
2024-06-10 15:09:40
692
原创 力扣19. 删除链表的倒数第 N 个结点
fast移动完后最后fast再移动一个节点。因为要保证后序的慢指针能指向被删除节点的前一个节点,如果不进行这一步,慢指针就会指向删除的节点,这个时候就不好操作了。移动完后最后fast再移动一个节点。因为要保证后序的慢指针能指向被删除节点的前一个节点,如果不进行这一步,慢指针就会指向删除的节点,这个时候就不好操作了。3.快指针fast和慢指针slow一起移动直到,快指针fast指向空结束。2.快指针fast先移动n(n为倒数的节点序号)个节点,给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。
2024-06-10 14:18:18
283
原创 力扣24. 两两交换链表中的节点
2.用cur搜索cur->next和cur->next->next,如果不为空就进行交换。1.定义一个虚拟头节点dummyHead和一个搜索指针cur,cur指向虚拟头节点。
2024-06-10 14:10:48
193
原创 力扣707. 设计链表
你可以选择使用单链表或者双链表,设计并实现自己的链表。单链表中的节点应该具备两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果是双向链表,则还需要属性prev以指示链表中的上一个节点。假设链表中的所有节点下标从0开始。
2024-06-10 14:01:39
326
原创 力扣203. 移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
2024-06-10 13:56:38
318
原创 力扣面试题 02.07. 链表相交
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。
2024-06-10 12:11:27
795
1
原创 力扣142. 环形链表 II
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。
2024-06-10 12:02:10
417
1
原创 解决开机弹出软键盘
有强迫症的同学看了就很不舒服,把向日葵删了就没了,但是总不能每次都删掉用的时候在下载。注意不是上图这个位置的,是位置是Oray Vhid。开机出现软键盘就是安装了向日葵远程控制,没有安装向日葵就不是这个原因。
2023-10-18 13:40:32
1651
1
原创 Error [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\hp\AppData\Roaming\npm\node_modules\nrm\nod
在学习node.js时安装全局工具nrm工具,尝试使用nrm ls命令查看可使用服务器,发现报错Error [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\hp\AppData\Roaming\npm\node_modules\nrm\cli.js to a dynamic import() which is available in all CommonJS modules.,使用如下代码可以解决安装nrm时使用nrm命令报错问题,亲测有效。
2023-04-19 20:57:19
2578
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人