自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法训练营day30

例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。所以你应该输出 1。解释: 这个序列包含几个长度为 7 摆动序列,其中一个可为[1,17,10,13,10,16,8]。输入: [1,17,5,10,13,15,10,5,16,8]输入: [-2,1,-3,4,-1,2,1,-5,4]

2024-02-24 19:59:44 365 1

原创 算法训练营day14

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点)。

2024-02-02 22:10:03 338

原创 算法训练营day13

首先在每一种遍历中,遇到空节点都是直接返回,对于前序和中序遍历,它们都是首先处理当前节点,然后处理子节点,后序遍历是先处理左节点和右节点,再处理当前节点。

2024-02-02 22:01:12 290

原创 算法训练营day12

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。输入: nums = [1,1,1,2,2,3], k = 2。给定一个非空的整数数组,返回其中出现频率前 k 高的元素。输入: nums = [1], k = 1。返回滑动窗口中的最大值。

2024-01-30 20:18:39 372 1

原创 算法训练营day11

解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。输入: ["10", "6", "9", "3", "+", "-11", " * ", "/", " * ", "17", "+", "5", "+"]给定逆波兰表达式总是有效的。给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

2024-01-29 21:34:35 322

原创 算法训练营day10

用queue1和queue2两个队列来实现栈,queue1用于出栈,queue2用于入栈。用stackIn和stackOut两个栈来实现队列,队列是先进先出,栈是后进先出。push(x) -- 将一个元素放入队列的尾部。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。pop() -- 从队列首部移除元素。push(x) -- 元素 x 入栈。empty() -- 返回栈是否为空。pop() -- 移除栈顶元素。top() -- 获取栈顶元素。

2024-01-27 20:37:43 360

原创 算法训练营day7

给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。通过迭代地反转长度为。输入:["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]

2024-01-26 20:25:01 298 1

原创 算法训练营day6

接下来,方法遍历输入数组中的每个元素。示例: 给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]

2024-01-19 22:33:41 312 1

原创 算法训练营day5

给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。然后,它使用HashSet存储和查找元素,遍历两个数组并找出共同的元素,最后将结果转换为整数数组并返回。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。等于1,说明开始的那个数是一个"快乐数",返回true;不是,则返回 False。

2024-01-19 18:37:26 346 1

原创 算法训练营day4

双指针的运用,快指针移动n,使得两指针距离为n,然后同时移动两指针,将慢指针的 next 指针指向其下一个节点的下一个节点,从而删除第 n 个节点。先计算两链表的长度,确定哪个链表更长,并使curA指向它,计算长度差,再遍历两个链表,如果遇到相同的节点就返回该节点,没有相同的节点就返回null。题意: 给定一个链表,返回链表开始入环的第一个节点。给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。两两交换链表中的节点。

2024-01-17 21:26:24 291

原创 算法训练营day3

链表类有链表的长度、头节点,并提供了一系列方法来操作链表。以下代码给出了三种方式来删除链表中给定值的元素,它们分别是添加虚节点方式,不添加虚节点方式和不添加虚节点and pre Node方式,第一种方式中设置dummy为虚拟头节点,这里用双指针法来反转链表,初始化了三个指针prev,cur,temp,并通过while循环的一系列操作完成反转。移动到当前节点,最后返回虚拟头节点的下一个节点作为新的链表头。和cur分别表示当前节点的前驱和当前节点,如果当前节点的值等于给定的。,则从链表中删除该节点。

2024-01-15 21:38:23 354

原创 算法训练营day2

要统一按照左闭右开的原则遍历每一条边,先定义一个结果数组存储螺旋遍历的元素,然后设置循环,按照顺序遍历矩阵元素并将其加到结果数组中,最后当n为奇数时,单独处理中心点即可。滑动窗口:利用两个指针,它们分别表示滑动窗口的起始位置和终止位置,当终止位置移动直到元素和大于s时,起始位置移动,循环此操作就能找到满足条件的长度最小的子数组。双指针法:利用左右两个指针逐步向中间合拢,来将数组中的元素平方并排序。

2024-01-14 21:13:17 301

原创 算法训练营day1

两者区别在于边界条件不同,所以对应的right取值和while的判断条件也不同。快指针用于寻找新数组的元素,慢指针用于指向更新新数组下标的位置。

2024-01-13 21:48:30 317

空空如也

空空如也

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

TA关注的人

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