- 博客(48)
- 收藏
- 关注
原创 算法学习中不可或缺的刷题技巧
当你抄题达到一定量后,可以去关注解题时间,刷题时尽量控制下时间,自己给自己设置时间限制,不要让自己一直思考下去,如果遇到一个题目 40 分钟还没有想出来解题思路,建议先放弃。等到后面熟悉了,大脑形成记忆了再去解题。其实比较适合初学者的方法可以是先抄题,再把别人的解题思路推敲出来,让大脑对代码形成一种固有记忆,再去看一些解题视频,专业书籍就会感觉轻松许多。算法学习中,如果光是刷对的题,你只是做对了一半,我们需要在刷对题的前提下,找到方法。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-06-12 17:07:48
55
原创 利用递归来遍历树
在这里的栈模拟中比较难处理的在于从当前节点 u 的子节点 v1 返回时,此时需要处理节点 u 的下一个节点 v2 ,此时需要记录当前已经遍历完成哪些子节点,才能找到下一个需要遍历的节点。每次查看栈顶元素 p ,如果节点 p 的子节点已经全部访问过,则记录当前节点的值,并将节点 p 的从栈中弹出,并从哈希表中移除,表示该以该节点的子树已经全部遍历过;如果当前节点 p 的子节点还有未遍历的,则将当前节点的 p 的下一个未访问的节点压入到栈中,重复上述的入栈操作。每次入栈时都将当前。
2025-06-11 17:13:52
268
原创 N叉树的后序遍历
给定一个 n 叉树的根节点 root ,返回其节点值的后序遍历。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。题目和提示都给到大家了,小伙伴们有好的方法来解题吗?欢迎留言,一起探讨哦!
2025-06-11 12:03:31
75
原创 搜索二维矩阵
实际上,基本思路就是从矩阵第一行最右侧开始查找,当前值比 target 大往左走,比 target 小的话往下走。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-06-10 15:59:04
297
原创 只出现一次的数字
所谓算法对应的题解,有的题解运行速度快,构思巧妙,有的题解循环次数太多,运行速度慢。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-06-10 09:30:12
78
原创 统计按位或能得到最大值的子集数目
如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,则认为数组 a 是数组 b 的一个 子集。如果选中的元素下标位置不一样,则认为两个子集 不同。给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目。对数组 a 执行 按位或 ,结果等于 a[0] OR a[1] OR ... OR a[a.length - 1](下标从 0 开始)。
2025-06-09 16:07:38
155
原创 LR修图软件|Lightroom 2025网盘下载与安装教程指南
说起LR,有些小伙伴可能第一印象是化学元素铹(Lawrencium)的符号。实际上,本文要介绍的LR,全称,是一款专业图像处理与管理软件,主要用于摄影后期制作,具备照片导入、整理、编辑、导出和分享功能,支持非破坏性编辑和跨设备同步,广泛应用于摄影师、设计师和摄影爱好者群体。目前来说,Lightroom(Lr)最新已推出2025版本。
2025-06-08 18:01:31
1856
1
原创 AU音频软件|Audition 2025网盘下载与安装教程指南
说起AU,有些小伙伴可能第一印象是化学元素金(Aurum)。实际上,本文要介绍的AU,全称是,是一款专业音频编辑和混音软件,广泛应用于音乐制作、广播、电影及视频声音设计等领域。目前来说,Audition(Au)最新已推出2025版本。
2025-06-08 10:13:51
1407
原创 棒球比赛三种示例方式及提示
比赛开始时,记录是空白的。假如你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。2. "+" - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。3. "D" - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效的分数。4. "C" - 表示前一次得分无效,将其从记录中移除。题目数据保证记录此操作时前面总是存在一个有效的分数。请你返回记录中所有得分的总和。
2025-06-07 18:11:27
299
原创 位运算的思路与算法
当且仅当输入 n 为交替位二进制数时,a 的二进制表示全为 1(不包括前导 0)。这里进行简单证明:当 a 的某一位为 1 时,当且仅当 n 的对应位和其前一位相异。当 a 的每一位为 1 时,当且仅当 n 的所有相邻位相异,即 n 为交替位二进制数。将 a 与 a+1 按位与,当且仅当 a 的二进制表示全为 1 时,结果为 0。这里进行简单证明:当且仅当 a 的二进制表示全为 1 时,a+1 可以进位,并将原最高位置为 0 ,按位与的结果为 0。结合上述两步,可以判断输入是否为交替位二进制数。
2025-06-07 09:49:49
215
原创 好子集的数目概念及表达形式
给你一个整数数组 nums。如果 nums 的一个子集中,所有元素的乘积可以表示为一个或多个 互不相同的质数 的乘积,那么我们称它为 好子集。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-06-06 17:45:33
207
原创 用二分查找法降低时间复杂度
首先比较目标字母和列表中的最后一个字母,当目标字母大于或等于列表中的最后一个字母时,答案是列表的首个字母。当目标字母小于列表中的最后一个字母时,列表中一定存在比目标字母大的字母,可以使用二分查找得到比目标字母大的最小字母。初始时,二分查找的范围是整个列表的下标范围。每次比较当前下标处的字母和目标字母,如果当前下标处的字母大于目标字母,则在当前下标以及当前下标的左侧继续查找,否则在当前下标的右侧继续查找。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-06-06 10:38:46
109
原创 搜索子字符串的思路与算法分享
首先,如果 s 和 goal 的长度不一样,那么无论怎么旋转,s 都不能得到 goal ,返回 false。字符串 s+s 包含了所有 s 可以通过旋转操作得到的字符串,只需要检查 goal 是否为 s+s 的子字符串即可。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-06-05 20:55:38
176
原创 浅谈用算法计算最富有客户的资产总量
给你一个 m x n 的整数网格 accounts ,其中 accounts[ i ][ j ] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-06-05 11:13:10
127
原创 时间复杂度与空间复杂度分析
空间复杂度:O(n2) 或 O(n),取决于使用的语言的字符串是否可修改。如果可以修改,我们只需要 O(n) 的空间临时存储字符串切片;如果不可以修改,我们需要 O(n2) 的空间临时存储所有单词修改后的结果。注意这里不计入返回字符串使用的空间。时间复杂度:O(n2),其中 n 是字符串 sentence 的长度。虽然我们对字符串只进行了常数次遍历,但是返回的字符串长度的数量级是 O(n2) 的。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-06-04 15:53:45
167
原创 模拟 + 队列方法找出游戏的获胜者
每一轮游戏中,从当前小伙伴开始数 k 名小伙伴,数到的第 k 名小伙伴离开圈子。模拟游戏过程的做法是,将队首元素取出并将该元素在队尾处重新加入队列,重复该操作 k-1 次,则在 k−1 次操作之后,队首元素即为这一轮中数到的第 k 名小伙伴的编号,将队首元素取出,即为数到的第 k 名小伙伴离开圈子。使用队列存储圈子中的小伙伴编号,初始时将 1 到 n 的所有编号依次加入队列,队首元素即为第 1 名小伙伴的编号。重复上述过程,直到队列中只剩下 1 个元素,该元素即为获胜的小伙伴的编号。
2025-06-04 10:47:08
108
原创 迭代法求二进制数之和
该节点的右节点为空或者等于 prev ,说明该节点的左子树及右子树都已经被访问,我们将它出栈。如果该节点是叶子节点,我们将它对应的数字 val 加入结果中。设置 prev 为该节点,设置 root 为空指针。思路比较简单:我们用栈来模拟递归,同时使用一个 prev 指针来记录先前访问的节点。该节点的右节点非空且不等于 prev ,我们令 root 指向该节点的右节点。3.如果 root 为空指针或者是栈空,中止算法,否则重复步骤 1。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-06-03 08:49:17
212
原创 AI矢量软件|Illustrator 2025网盘下载与安装教程指南
说起AI,很多人第一印象可能是AI人工智能,是与Python相关。实际上,本文要讲的,是Adobe Illustrator的缩写,它是一款基于矢量的图形制作软件,主要应用于插画、包装、印刷出版、书籍排版、动画和网页制作等领域。目前来说,Illustrator(AI)最新已推出2025版本。
2025-06-02 19:07:05
1761
原创 AE下载|after effects2025百度云盘安装教程指南
如大家所熟悉的,本文要介绍的。说起AE,大家可能会很快联系上PR(Premiere)。PR与AE算得上是兄弟软件,前者可以对创作者的影视作品进行剪辑处理,后者则可对后期作品进行特效、润色处理。目前来说,After effects(AE)最新已推出2025版本。
2025-06-02 10:57:25
1611
原创 简历制作要精而不简
此外,使用易读的字体和格式,使得你的简历更容易阅读。不得不说,不管是春招,还是秋招,我们在求职时,第一步便是制作一份简历。不得不承认,好的简历,就像一块敲门砖,能让面试官眼前一亮,让应聘成功的概率增添一分。在简历中,使用简明扼要的语言描述你的技能和经验。使用简单的句子和段落来概括你的信息,使得雇主能够快速地了解你的背景和能力。最重要的一点也是容易被忽略的一点,确保简历格式一致,使用同样的字体和大小,并仔细检查拼写和语法错误。从完整的工作经历中,看到你处理事情的能力点和能力程度。
2025-06-01 19:22:03
252
原创 重复的元素x在数组nums中出现的位置
当 n > 2 时,3n−2 > 2n ,不存在满足要求的数组。因此一定存在两个相邻的 x ,它们的位置是连续的,或者只隔了 1 个位置。我们可以考虑重复的元素 x 在数组 nums 中出现的位置。这样一来,我们只需要遍历所有间隔 2 个位置及以内的下标对,判断对应的元素是否相等即可。当 n=2 时,数组的长度最多为 2n=4 ,因此最多只能隔 2 个位置。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-05-30 11:46:12
159
原创 串联所有单词的子串
例如:如果 words = [ “ab”,“cd”,“ef” ] 那么 "abcdef", "abefcd","cdabef", "cdefab"," efabcd ", 和 " efcdab " 都是串联子串。" acdbef " 不是串联子串,因为他不是任何 words 排列的连接。给定一个字符串 s 和一个字符串数组 words。words 中所有字符串 长度相同。s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。返回所有串联字串在 s 中的开始索引。
2025-05-30 08:57:18
156
原创 用代码解决粉刷房子问题
当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2] 表示第 1 号房子粉刷成绿色的花费,以此类推。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-05-29 18:31:32
171
原创 反转字符串与链表的反转
双指针法,定义一个指针 cur 指向当前节点,一个指针 pre 指向前一个节点,另一个指针 next 指向当前节点的下一个节点。然后依次将当前节点指向前一个节点,然后依次将 pre、cur、next 向右移动一个节点,直到 cur 指向链表的尾节点。输入:["h", "e", "l", "l", "o"]输出:["o", "l", "l", "e", "h"]给定一个链表,反转链表后,返回新链表的头节点。输入:1->2->3->4->5->NULL。输出:5->4->3->2->1->NULL。
2025-05-29 11:58:03
205
原创 用代码解决黑名单中的随机数问题
Solution(int n, int[] blacklist) 初始化整数 n 和被加入黑名单 blacklist 的整数。黑名单整数数组 blacklist。设计一种算法,从 [0, n - 1] 范围内的任意整数中选取一个。int pick() 返回一个范围为 [0, n - 1] 且不在黑名单 blacklist 中的随机整数。黑名单 blacklist 的整数。任何在上述范围内且不在黑名单 blacklist 中的整数都应该有。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-05-29 08:21:26
266
原创 聊聊后端面试中的MySQL高频考题
不可否认,无论是常年与数据打交道的数据分析师和数据科学家,经常需要管理和维护数据库的数据库管理员,还是是需要了解嵌入式数据库的移动开发工程师,都免不了与SQL打交道。如大家所了解的,SQL( Structured Query Language )是一门在开发者中使用覆盖率超50%的数据库结构化查询语言。广为人知的有,二叉搜索树,AVL 树,红黑树,B树等等。那么,在后端的技术面试中,有哪些常见的MySQL考题呢?好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!而对于后端程序员来说,
2025-05-28 11:52:19
332
原创 离散化算法的下标映射
将下标和元素绑定后,有一个好处,对应每个元素能 O(1) 的找出该元素在原始数组中的位置。因此,我们只需要顺序遍历排序后的元素,顺序的将原数组的值改为。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!如果将下标也一同排序,数据将是怎么的形式呢?
2025-05-28 08:44:46
179
原创 程序员面试要对自己的项目“心中有数”
会增删改查的虽然多,但是明白这些原理的面试者可能不多,有了这些过硬的基本功,相信面试官也会对你更有兴趣。这是面试中的加分项。,可能很多同学做过不少项目,但是面试时被面问到却说的比较模糊,这是因为没有提前准备关于项目的问题,所以当你决定把一个项目写进简历时,应该提前提炼出项目难点和用到的技术栈,以免被问到时不知所措。如果有参与过一些著名的开源项目、阅读过它的源码、了解一些核心功能的实现原理,在面试的时候能够巧妙的展示出来,也会有所帮助。即使在项目里你做的事情比较基础,也可以深挖所做需求背后的原理和要点。
2025-05-27 08:01:42
176
原创 PR视频剪辑软件|Premiere 2025网盘下载与安装指南
从事视频后期制作的小伙伴,对今天的文章应该会比较熟悉。PR全称Adobe Premiere Pro,是一款非线性编辑的视频剪辑软件,提供视频捕捉、编辑、特效处理、色彩校正、字幕添加、音频美化以及输出等一整套流程。目前来说,Premiere最新已推出2025版本。
2025-05-26 15:31:31
1483
原创 PS图像处理软件|Photoshop 2025网盘下载与安装指南
对于Photoshop这款软件,相信大家都不会陌生。不管是平面设计专业的高材生,还是从事于设计工作、或业余需要修图的小伙伴,或多或少都用到过PS这款工具。但是,Adobe Photoshop的发展背景,又有多少人知晓呢?实际上,Photoshop由托马斯·诺尔(Thomas Knoll)最初开发,目的是解决苹果电脑的灰度显示问题,其名称来源于“Photo”(照片)与“Shop”(处理)的结合,强调对位图(像素构成)图像的专业处理能力。。
2025-05-26 08:40:33
3329
原创 验证栈序列的例题与代码
我们可以按以下顺序执行:push(1) , push(2) , push(3) , push(4) , pop() -> 4 , push(5) , pop() -> 5 , pop() -> 3, pop() -> 2 , pop() -> 1。否则,返回 false。只要模拟入栈和出栈的过程,将一个数进行入栈操作的时候检查该数是否为下一个要出栈的数,如果是就弹出该数,并继续检查栈中的数。如果能扫描完所有要出栈的数,就是一个合法的栈序列。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-05-25 15:29:38
136
原创 行星碰撞问题的描述和示例
找出碰撞后剩下的所有行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动)。每一颗行星以相同的速度移动。给定一个整数数组 asteroids ,表示在同一行的行星。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!今天我们来看一个行星碰撞的问题。
2025-05-25 07:46:40
110
原创 无向图的欧拉路径
我们仍然可以使用 Hierholzer 算法寻找无向图中的欧拉路径,相关证明也是类似的,这里不再赘述。只不过当图中有两个度数为奇数的点时,必须从其中一个点开始执行深度优先搜索,才能找到欧拉路径。因为欧拉路径的起点必然是这两者之一。类似,我们只要抓住进入每个点和离开每个点的边数关系,就能得到无向图中存在欧拉路径的判定条件。,一条路径只需要恰好经过每条边一次,而不需要回到起点,那么这条路径被称为“欧拉路径”。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-05-24 21:11:00
309
原创 Hierholzer算法精妙的深度优先搜索
请注意,为了便于分析与讲解,下面给出的代码实现并不是欧拉回路的最优时间复杂度实现。下文中,我们将提出该实现的一个优化。由于 Hierholzer 算法的流程需要我们删除一条无向边,因此我们需要同时删除一条有向边和它的反向边。如大家所知,虽然Hierholzer算法的流程看起来较为复杂,但我们可以通过一段精妙的代码,将算法流程中的两个步骤合并到同一个深度优先搜索过程中。中保存的欧拉回路,是我们求出的欧拉回路的倒序。因此,我们还需要调用。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-05-24 14:57:23
157
原创 Java多线程程序之间的协作
请注意,在使用 wait() 和 notify() 方法时,必须在同步块内部调用它们,否则会抛出 IllegalMonitorStateException 异常。此外,线程在调用 wait() 方法时会释放锁,直到被唤醒后才会重新获得锁。因此,如果在调用 wait() 方法之前没有获得锁,就会抛出 IllegalMonitorStateException 异常。线程 t1 首先获得锁,并调用 wait()方法进入等待状态。线程 t2 获得锁,并调用 notify() 方法通知 t1 线程可以继续执行了。
2025-05-23 14:19:49
191
原创 使用Callable和Future创建线程
在这个示例中,我们创建了一个 Callable 任务( MyCallable ),并将其提交给一个线程池( ExecutorService )。线程池会返回一个 Future 对象,我们可以使用它来获取任务的执行结果。在主线程中,我们调用 Future 对象的 get 方法来获取结果,这是一个阻塞方法,直到任务执行完成才会返回结果。最后,我们关闭线程池。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-05-23 09:24:23
167
原创 时间复杂度与空间复杂度分析
对于 indices 中的每一对 [ ri , ci ] ,我们将 rows[ri] 和 cols[ci] 的值分别增加 1。遍历矩阵,即可得到所有奇数的数目。O(q×(m+n)+m×n) , 其中 q 表示数组 indices 的长度,m , n 为矩阵的行数与列数。遍历数组时,每次都需要更新矩阵中一行加一列,需要的时间为 O(q×(m+n)) ,最后还需要遍历矩阵,需要的时间为 O(m×n) ,总的时间复杂度为 O(q×(m+n)+m×n);O(m×n) ,其中 m , n 为矩阵的行数与列数。
2025-05-22 15:36:47
217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人