算法
文章平均质量分 72
当代优秀青年
这个作者很懒,什么都没留下…
展开
-
【leetcode算法】——713. 乘积小于k的子数组
【代码】【leetcode算法】——713. 乘积小于k的子数组。原创 2024-10-11 15:46:50 · 362 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 21 —— 108.将有序数组转换为二叉搜索树、 538.把二叉搜索树转换为累加树
【代码】代码随想录算法训练营43期 | Day 21 —— 108.将有序数组转换为二叉搜索树、 538.把二叉搜索树转换为累加树。原创 2024-09-19 21:19:26 · 363 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 20 —— 235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
cur>p && cur>q,则可推出,公共祖先在左子树;cur原创 2024-09-19 20:55:27 · 407 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 18——530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数
中序遍历,得到的一个有序的序列,然后从扫描这个中序遍历序列,然后用一个哈希表来统计每个数字出现的个数,这样就可以找到出现次数最多的数字。给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值。但是,这样一颗二叉搜索树的中序遍历序列是 {−1,0,0,1,2,2}。来维护已经扫描过的数当中出现最多的那个数字的出现次数,用。将二叉搜索树得到有序的数组,在求两个元素的最小绝对差。原创 2024-08-29 19:54:57 · 450 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 17——654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。选取最大的元素作为根节点,以根节点进行分割,左边选取最大元素作为根节点。通过给定的数组构建最大二叉树,并且输出这个树的根节点。给定一个二叉树,判断其是否是一个有效的二叉搜索树。节点的 右子树 只包含 大于 当前节点的数。节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。原创 2024-08-29 16:15:53 · 352 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 16—— 513. 找树左下角的值、112. 路径总和、106.从中序与后序遍历序列构造二叉树
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树。中序遍历 inorder = [9,3,15,20,7]示例: 给定如下二叉树,以及目标和 sum = 22,根据后序确定根节点,根据中序确定左右子树节点。寻求二叉树中目标和,元素相加等于目标和。一个前序、后序无法确定一个二叉树。遍历顺序:前序、中序、后序均可。一个中序、后序确定一个二叉树。一个前序、中序确定一个二叉树。原创 2024-08-27 17:22:23 · 395 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 15——110.平衡二叉树、 257. 二叉树的所有路径、404. 左叶子之和、222. 完全二叉树的节点个数
除了底层节点,上层的节点数量都是满的,且底层的节点是从左到右依次排序;确定单层递归的逻辑:回溯和递归一一对应,一个递归对应一个回溯。利用完全二叉树的特性进行计算节点个数。回溯算法:递归遍历顺序:前序遍历。原创 2024-08-21 21:22:31 · 435 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 14——226.翻转二叉树、101. 对称二叉树、104.二叉树的最大深度、二叉树最小深度
【代码】代码随想录算法训练营43期 | Day 14——226.翻转二叉树、101. 对称二叉树。原创 2024-08-14 22:32:40 · 411 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 13 —— 二叉树part01
int val;原创 2024-08-14 19:09:18 · 898 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 11——150. 逆波兰表达式求值、239. 滑动窗口最大值(单调队列)、347.前 K 个高频元素(优先级队列)
单调队列:每次窗口移动的时候,调用que.pop(滑动窗口中移除元素的数值),que.push(滑动窗口添加元素的数值),然后que.front()就返回我们要的最大值。给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。此时我们需要一个队列,这个队列呢,放进去窗口里的元素,然后随着窗口的移动,队列也一进一出,每次移动之后,队列告诉我们里面的最大值是什么。此处的 “队列” 跟普通队列的一大不同就在于可以从队尾进行操作,STL 中有类似的数据结构 deque。原创 2024-08-13 21:22:27 · 987 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 10——栈与队列part1
【代码】代码随想录算法训练营43期 | Day 10——栈与队列part1。原创 2024-08-11 20:24:16 · 399 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 9——字符串part2
字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。输入:输入共包含两行,第一行为一个正整数 k,代表右旋转的位数。例如,对于输入字符串 “abcdefg” 和整数 2,函数应该将其转换为 “fgabcde”。解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。输出:输出共一行,为进行了右旋转操作后的字符串。输入: " hello world!原创 2024-08-10 22:26:08 · 460 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 8——字符串part01
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。当i+2k,剩余字符少于k个时,将剩余字符全部翻转;给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]原创 2024-08-09 00:10:21 · 405 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 7——哈希表Part2
题意:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]否则返回 false。给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。原创 2024-08-07 23:40:12 · 665 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 6——哈希表Part01
当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法,但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。原创 2024-08-07 00:05:56 · 899 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 4——24.交换链表、19.删除链表第N个节点、
slow指针走过的节点数为: x + y,fast指针走过的节点数:x + y + n (y + z),为fast指针在环内走了n圈才遇到slow指针, (y+z)为 一圈内节点的个数A,(x + y) * 2 = x + y + n (y + z),两边消掉一个(x+y): x + y = n (y + z),因为要找环形的入口,那么要求的是x,因为x表示 头结点到 环形入口节点的的距离。首先第一点:fast指针一定先进入环中,如果fast指针和slow指针相遇的话,一定是在环中相遇,这是毋庸置疑的。原创 2024-08-05 22:30:23 · 767 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 3——203.移除链表元素、707.设计链表、 206.反转链表
int val;原创 2024-08-05 00:13:39 · 1049 阅读 · 0 评论 -
码随想录算法训练营43期 | 数组总结篇
数组是存放在连续内存空间上的相同类型数据的集合。数组可以方便的通过下标索引的方式获取到下标对应的数据。数组的下标是从0开始组内存空间的地址是连续的删除或者增添元素的时候,就难免要移动其他元素的地址,数组的元素是不能删的,只能覆盖。原创 2024-08-02 12:05:57 · 1664 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 2——209. 长度最小的子数组、59.螺旋矩阵、区间和
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。取 i 为起始指针,取 j 为终止指针,j 遍历数组,当 i 与 j 之间的区间的值大于target的值的时候,起始指针开始向后移动;输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]输入:s = 7, nums = [2,3,1,2,4,3]解释:子数组 [4,3] 是该条件下的长度最小的子数组。原创 2024-08-01 23:50:57 · 602 阅读 · 0 评论 -
代码随想录算法训练营43期 | Day 1——704 二分查找、27 移除元素、977 有序数组的平方
if(nums[middle]>target) ,target在左区间,已知左闭右闭区间,已知判断条件nums[middle]大于target,说明,nums[middle]一定不是搜索的值,所以接下来的区域一定不包含这个值,因此right = middle - 1;同理,nums[middle]<nums[target],target在右区间,已知判断条件nums[middle]<target,说明,nums[middle]一定不是搜索的值,因此left = middle+1;原创 2024-07-31 12:44:49 · 544 阅读 · 0 评论
分享