自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法题目总结

动态规划简称DP,是一种分而治之的思想。所谓分而治之就是:如果有一个大工程,我们会将它分为很多个小工程,然后逐一解决最后反推合并,将这个大工程完成。举个例子,如果我们求1 + 1,很容易得到2;如果求1 + 1 + 1,我们可以用2 + 1 = 3,而不是1+1+1=3这样逐一相加;如果求 1 + 1 + 1 + 1,我们可以用3 + 1 = 4,而不是1+1+1+1=4这样逐一相加,以此类推。动态规划能够将一些问题的子问题状态存储,然后当前状态是基于子状态进行运算。博主努力更新中。。。

2023-12-10 20:55:43 497 1

原创 使二叉树所有路径值相等的最小代价

这道题使2024-2-28的签到题,题目难度为中等。考察知识点:贪心 + 满二叉树。

2024-02-28 12:50:58 399

原创 二叉搜索树的范围和

这道题是2024-2-26的签到题,题目难度为简单。考察知识点:二叉搜索树。

2024-02-26 13:26:26 381 1

原创 二叉搜索树的最近公共祖先

这道题是2024-2-25的签到题,题目难度为中等。考察知识点:二叉搜索树给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(

2024-02-25 22:04:22 377

原创 二叉树中的第K大层和

这道题是2024-2-23的签到题,题目难度为中等。考察知识点为BFS算法(树的层序遍历) + 大根堆(优先队列)。给你一棵二叉树的根节点root和一个正整数k。树中的是指上节点值的总和。返回树中第k大的层和(不一定不同)。如果树少于k层,则返回-1。,如果两个节点与根节点的距离相同,则认为它们在同一层。

2024-02-23 14:07:37 389

原创 根据前序和后序遍历构造二叉树

这道题是2024-2-23的签到题,题目难度为中等。考察知识点为递归。给定两个整数数组,preorder和postorder,其中preorder是一个具有值的二叉树的前序遍历,postorder是同一棵树的后序遍历,重构并返回二叉树。如果存在多个答案,您可以返回其中一个。

2024-02-23 13:57:00 1072

原创 从中序与后序遍历序列构造二叉树

这道题是2024-2-21的签到题,题目难度为中等。考察知识点为递归。给定两个整数数组inorder和postorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构造并返回这颗二叉树。

2024-02-21 20:57:19 904

原创 从前序与中序遍历序列构造二叉树

这道题是2024-2-20的签到题,题目难度为中等。考察的知识点为递归。给定两个整数数组preorder和inorder,其中preorder是二叉树的inorder是同一棵树的,请构造二叉树并返回其根节点。

2024-02-20 20:33:18 1328

原创 N叉树的后序遍历

这道题是2024-2-19的签到题,题目难度为简单。考察的知识点为DFS算法(树的深度遍历)。给定一个 n 叉树的根节点root,返回其节点值的。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值null分隔(请参见示例)。

2024-02-19 12:47:37 348

原创 N叉树的前序遍历

这道题是2024-2-18的签到题,题目难度为简单。考察的知识点为DFS算法(树的前序遍历)。给定一个 n 叉树的根节点root,返回其节点值的。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值null分隔(请参见示例)。

2024-02-18 20:49:35 354

原创 N叉树的层序遍历

这道题是2024-2-17的签到题,题目难度为中等。考察的知识点为BFS算法(树的层序遍历)。给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。

2024-02-17 19:37:25 377

原创 二叉树的锯齿形层序遍历

这道题是2024-2-16的签到题,题目难度为中等。考察知识点为BFS算法和双端队列。给你二叉树的根节点root,返回其节点值的。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

2024-02-16 20:11:49 375

原创 二叉树的层序遍历II

这道题是2024-2-15的签到题,题目难度为中等。考察的知识点为BFS算法(树的层序遍历)给你二叉树的根节点root,返回其节点值。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

2024-02-15 13:14:12 354

原创 二叉树的层序遍历

这道题是2024-2-14的签到题,题目难度为中等。考察的知识点为BFS算法(树的层序遍历)给你二叉树的根节点root,返回其节点值的。(即逐层地,从左到右访问所有节点)。

2024-02-14 11:18:34 394

原创 二叉树的垂直遍历

今天的这道签到题是今年(2024)我第一道有成就感的题目,毕竟是今年第一道自己独立解决的困难题。过年的这几天签到题都是DFS算法或BFS算法,这些天的练习让我对这两种算法有更深的理解。今天的这道题更是让我对前些天的练习有一个综合运用。也让我对之后的算法练习和学习有更大的鼓舞,算法这个东西如果我们能够凭借自己的努力解出来那是相当有成就感的,上次有这种成就感还是大一的时候做高数题。总而言之,算法思维并不是天生就有的,我也并不是天赋很好的选手,只能凭借每天的算法练习来学习和掌握常见的算法题。

2024-02-13 22:55:09 2061

原创 二叉树的后序遍历

这道题是2024-2-12的签到题,题目难度为简单。考察的知识点为DFS(后序遍历)。给你一棵二叉树的根节点root,返回其节点值的。

2024-02-12 14:58:17 322

原创 X图形

这道题是蓝桥云课上面的一道题目,它是2022年蓝桥杯省模拟题,题目难度为简单。考察的知识点为递归。

2024-02-11 14:02:11 461

原创 二叉树的前序遍历

这道题是2024-2-11的签到题,题目难度为简单。考察的知识点为DFS算法(树的遍历)给你二叉树的根节点root,返回它节点值的遍历。

2024-02-11 13:13:36 380

原创 二叉树的中序遍历

今天是大年初一,给大家给个年,祝大家新的一年工作顺利、学业有成,代码越敲越顺,bug越来越少。

2024-02-10 20:26:58 393

原创 二叉树的最近公共祖先

这道题是2024-2-9的签到题,题目难度为中等。考察的知识点为DFS算法。给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(

2024-02-09 15:26:01 564

原创 二叉树的堂兄弟结点

这道题是2024-2-8的签到题,题目难度为简单。考察的知识点为DFS算法。在二叉树中,根节点位于深度0处,每个深度为k的节点的子节点位于深度k+1处。如果二叉树的两个节点深度相同,但,则它们是一对堂兄弟节点。我们给出了具有唯一值的二叉树的根节点root,以及树中两个不同节点的值x和y。只有与值x和y对应的节点是堂兄弟节点时,才返回true。否则,返回false。

2024-02-08 19:08:02 338

原创 二叉树的堂兄弟结点II

对于BFS算法,又称为广度优先搜索算法。顾名思义,它是以遍历当前结点的所有邻居结点优先。举个栗子小王是个单身狗,他现在有4个心仪的女生,不知道先追求哪一个,于是他决定同时追求这4个女生,每个追求进度都一样。这就是广度优先搜索的思想。对于树结构的广度优先算法,我们可以理解为层序遍历,即一层一层遍历。对于DFS算法,它又称为深度优先算法。听名字就知道它就往某一个方向一直遍历,直到不能遍历为止,举个栗子。

2024-02-07 13:11:35 1643

原创 魔塔游戏

优先队列相比于普通的队列,它会根据某种规则自动排序,比如根据队列元素的大小进行排序,小的在前面或者大的在前面。通俗来讲,也有一个结构和它类似——小根堆。小根堆的特性是元素小的在上面,元素大的在下面(这里仅按照元素大小排序)。

2024-02-06 20:48:02 470

原创 除数博弈

这道题是Leetcode中动态规划类型的一道题,题目难度为简单。爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字n。x0 < x < nn % x == 0n - xn如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回true。假设两个玩家都以最佳状态参与游戏。

2024-02-05 22:38:55 432

原创 跳跃游戏VI

这个题目是2024-2-5的签到题,题目难度为中等。给你一个下标从开始的整数数组nums和一个整数k。一开始你在下标0处。每一步,你最多可以往前跳k步,但你不能跳出数组的边界。也就是说,你可以从下标i跳到两个端点的任意位置。你的目标是到达数组最后一个位置(下标为n - 1),你的为经过的所有数字之和。请你返回你能得到的。

2024-02-05 19:18:16 368

原创 石子游戏VI

这个题目是Leetcode的每日签到题。这道题针对的知识点是贪心算法和排序。Alice 和 Bob 轮流玩一个游戏,Alice 先手。一堆石子里总共有n个石子,轮到某个玩家时,他可以一个石子并得到这个石子的价值。Alice 和 Bob 对石子价值有。双方都知道对方的评判标准。给你两个长度为n的整数数组和bobValues。和分别表示 Alice 和 Bob 认为第i个石子的价值。所有石子都被取完后,得分较高的人为胜者。如果两个玩家得分相同,那么为平局。两位玩家都会采用进行游戏。1-10。

2024-02-02 13:02:42 322

原创 比特位计数

给你一个整数n,对于中的每个i,计算其二进制表示中 1,返回一个长度为n + 1的数组ans作为答案。

2024-01-31 15:14:31 411

原创 找出不同元素数目差数组

给你一个下标从开始的数组nums,数组长度为n。nums的数组可以用一个长度为n的数组diff表示,其中diff[i]等于前缀中不同元素的数目后缀中不同元素的数目。返回nums的数组。注意表示nums的一个从下标i开始到下标j结束的子数组(包含下标i和j对应元素)。特别需要说明的是,如果i > j,则表示一个空子数组。

2024-01-31 13:14:21 328

原创 寻找峰值

峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回所在位置即可。你可以假设。你必须实现时间复杂度为O(log n)的算法来解决此问题。

2023-12-19 22:39:13 127 1

原创 寻找峰值II

一个 2D 网格中的是指那些其相邻格子(上、下、左、右)的元素。给你一个的m x n矩阵mat,其中任意两个相邻格子的值都。找出mat[i][j]并[i,j]。你可以假设整个矩阵周边环绕着一圈值为-1的格子。要求必须写出时间复杂度为或的算法。

2023-12-19 22:38:08 34 1

原创 字典序最小回文串

给你一个由组成的字符串s,你可以对其执行一些操作。在一步操作中,你可以用其他小写英文字母s中的一个字符。请你执行,使s变成一个。如果执行操作次数的方案不止一种,则只需选取的方案。对于两个长度相同的字符串a和b,在a和b出现不同的第一个位置,如果该位置上a中对应字母比b中对应字母在字母表中出现顺序更早,则认为a的字典序比b的字典序要小。返回最终的回文字符串。

2023-12-13 22:56:40 47 1

原创 下一个更大元素IV

给你一个下标从开始的非负整数数组nums。对于nums中每一个整数,你必须找到对应元素的整数。如果nums[j]满足以下条件,那么我们称它为nums[i]的ki < k < j如果不存在nums[j],那么第二大整数为-1。142334-1请你返回一个整数数组answer,其中answer[i]是nums[i]的第二大整数。

2023-12-13 22:50:08 146 1

原创 最小体力消耗路径

你准备参加一场远足活动。给你一个二维的地图heights,其中表示格子(row, col)的高度。一开始你在最左上角的格子(0, 0),且你希望去最右下角的格子(注意下标从开始编号)。你每次可以往四个方向之一移动,你想要找到耗费最小的一条路径。一条路径耗费的是路径上相邻格子之间的决定的。请你返回从左上角走到右下角的最小。

2023-12-11 23:25:10 54

原创 最多K个重复元素的最长子数组

给你一个整数数组nums和一个整数k。一个元素x在数组中的指的是它在数组中的出现次数。如果一个数组中所有元素的频率都k,那么我们称这个数组是数组。请你返回nums中子数组的长度。指的是一个数组中一段连续非空的元素序列。

2023-12-10 21:56:46 61 1

原创 消除相邻近似相等字符

给你一个下标从开始的字符串word。一次操作中,你可以选择word中任意一个下标i,将word[i]修改成任意一个小写英文字母。请你返回消除word中所有相邻字符的操作次数。两个字符a和b如果满足a == b或者a和b在字母表中是相邻的,那么我们称它们是字符。

2023-12-10 21:37:53 44 1

原创 找到两个数组中的公共元素

给你两个下标从开始的整数数组nums1和nums2,它们分别含有n和m个元素。0 <= i < ninums1[i]nums20 <= i < minums2[i]nums1请你返回一个长度为2的整数数组answer分别为以上两个数值。

2023-12-10 21:11:45 206 1

原创 爬楼梯

这道题有多种解法,其中比较热门的解法分别是递归和动态规划。但无论哪种方法,咱们都要找到它的。为什么是这个表达式呢?题目中所说每次可以爬1或2个台阶。然而,使用递归这种解法会超时,在n=44的时候会超出时间范围,因此这题咱们使用动态规划的解法比较合适。上面两种解法真的适合这道题嘛?题目中变量的范围是:1 <= n <= 45。你有多少种不同的方法可以爬到楼顶呢?1. 第1级台阶跳2个台阶。2. 第2级台阶跳1个台阶。

2023-12-10 12:26:16 38 1

原创 下一个更大的数值平衡数

如果整数x满足:对于每个数位d,这个数位在x中出现d次。那么整数x就是一个。给你一个整数n,请你返回n的。

2023-12-09 21:35:30 31

原创 同积元组

咱们可以枚举数组中的两个数并计算它们的乘积,将其填入哈希表中,然后利用数学组合的知识统计。这题如果模拟的话很显然是不能通过的,模拟是利用四层for循环来将a,b,c,d来枚举进行比较,时间复杂度为O(n^4)。首先给数组进行去重处理,然后将数组中两两相乘的结果进行统计,如果在哈希表中则次数+1,反之则添加进去。这个例子里乘积为9的有2次,乘积为6的有1次,因此最终的情况为 8+0 = 8。第一个8 计算: 2 * (2-1) * 4 = 8。第二个0 计算:1 * (1-0) * 4 = 0。

2023-10-19 16:53:26 46 1

原创 执行 K 次操作后的最大分数

通过题意,这个相当于在k次循环中,每次找到当前数组最大值,然后加入结果,并将该值进行ceil(n / 3)处理,因此可以想到一种数据结构:堆。然后,我们用for循环来找到每次的堆顶,它就是堆中最小的那个元素(数组最大的),用result减去这个负数,然后将它处理加入到堆中,这里注意:每次处理后加的新元素是它的相反数而不是它本身。首先,我们将数组转为它的相反数数组,这是因为python的heapq库中构造堆为小根堆,而要达到大根堆的效果只能这样。然而很可惜:超时了,只过了32个例子,因此尝试用其它算法。

2023-10-18 17:10:36 46 1

pikachu靶场全通关教程

这个是刚开始学网络安全渗透的靶场练习心得,分享给大家

2023-07-20

空空如也

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

TA关注的人

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