- 博客(437)
- 资源 (30)
- 收藏
- 关注

原创 Tom 和 Jerry 的网格迷宫大冒险
故事剧情基于力扣的题目与。每一局的网格布局、双方最大跳跃距离、最优策略与双方移动过程都由作者设计,部分剧情内容由 AI 生成,作者在 AI 生成内容的基础上创作完整的游戏剧情。
2025-07-12 10:00:00
889

原创 Tom 和 Jerry 的图论迷宫大冒险
在卡通小镇的拓扑地图上,每个结点都是充满趣味的场景。000号结点:橡木鼠洞(Jerry 的终极安全区,Tom 禁止进入)。111号结点:阳光奶酪店(Jerry 的起点,空气中弥漫着芝士香气)。222号结点:玫瑰花园(Tom 的起点,盛开的花丛间藏着捕鼠夹)。333号结点:中央喷泉广场(镇中心的圆形广场,喷泉不时喷水)。444号结点:红苹果果园(结满苹果的果树迷宫)。555号结点:全麦面包房(飘着烤面包香味的小屋)。666号结点:樱花迷宫公园(种满樱花树的复杂步道)。777。
2025-07-05 10:00:00
697

原创 前缀和的概念
前缀和指的是数组中从首个元素开始的连续子数组中的元素之和,由于从首个元素开始的连续子数组是数组的前缀,因此该子数组中的元素之和称为前缀和。一维数组和二维数组都可以计算前缀和,一维数组的前缀和更常见。用numsnums表示原数组。当numsnums是一维数组或二维数组时,前缀和的定义如下。当numsnums是一维数组时,用nnn表示数组的长度,则对于0≤i≤n0≤i≤nnumsnums的长度为iii的前缀和为numsnums的下标范围0i−1。
2025-05-22 18:00:00
666

原创 数据结构和算法文章目录
文章目录算法 + 数据结构 = 程序数据结构概述常用数据结构高级数据结构算法概述数学算法 + 数据结构 = 程序Pascal 之父尼古拉斯·沃斯(Nicklaus Wirth)凭借一句话获得了图灵奖,让他获得图灵奖的是他提出的著名公式:算法 + 数据结构 = 程序。数据结构和算法是程序中的两个不同的概念,又有所联系。数据结构是数据的表示形式,算法是解决问题的流程,算法在程序中的体现是函数或方法。算法中经常用到数据结构,因此数据结构和算法之间存在密切的联系。数据结构概述数据结构虽然有多种类型,但是大
2021-06-08 19:03:27
239
原创 前缀和题目:元素和小于等于阈值的正方形的最大边长
这道题要求返回矩阵matmat中的元素和不超过thresholdthreshold的正方形区域的最大边长。计算正方形区域的元素和需要通过二维前缀和实现,二维前缀和的实现可以使用「二维区域和检索 - 矩阵不可变」的做法。
2025-07-21 18:00:00
957
原创 前缀和题目:表现良好的最长时间段
根据该结论,可以排除不可能是表现良好的最长时间段的开始下标的下标。以下用「时间段」表示表现良好的时间段,用「最长时间段」表示表现良好的最长时间段。的时间,得到前缀和数组之后,需要从左到右遍历前缀和数组将下标入单调栈,然后从右到左遍历数前缀和数组计算表现良好的最长时间段。一个表现良好的时间段是指在该时间内的劳累的天数严格大于不劳累的天数。的子数组对应的时间段也是表现良好的时间段,且该时间段的长度。的元素个数,则该子数组对应的时间段是表现良好的时间段。的子数组对应的时间段为表现良好的时间段,其长度为。
2025-07-17 18:00:00
1687
原创 前缀和题目:使数组互补的最少操作次数
之后,遍历差分数组,计算每个元素和对应的操作次数,得到最少操作次数。一次更新差分数组的值,需要遍历差分数组一次计算最少操作次数,因此时间复杂度是。,因此更新差分数组的效果是两次更新抵消,不会更新差分数组的任何元素值。个区间,按照区间从小到大的顺序,每个区间对应的操作次数依次是。范围中的任意整数,因此每一对元素的和的取值范围是。因此,如果存在空区间,上述解法仍可以得到正确的结果。在不同区间对应的一对元素的操作次数如下。为了得到使数组互补的最少操作次数,需要对。,表示数组中的所有元素都需要替换,对于。
2025-07-14 18:00:00
1682
原创 前缀和题目:有序数组中差绝对值之和
按非递减顺序排序,因此数组中的任意两个元素的差的绝对值等于后面的元素减前面的元素(即下标大的元素减下标小的元素)。计算前缀和与计算答案数组各需要遍历数组。与数组中所有其他元素差的绝对值之和。个元素之和,可以在遍历数组。的全部元素之和,在遍历数组。遍历结束之后即可得到结果数组。注意返回值不计入空间复杂度。标题:有序数组中差绝对值之和。实现方面,可以维护两个变量。的过程中更新两个变量的值。建立并返回一个整数数组。的情况可以合并,即当。解释:假设数组下标从。
2025-07-10 18:00:00
951
原创 前缀和题目:你能在你最喜欢的那天吃到你最喜欢的糖果吗?
注意在满足第二条规则的前提下,可以在同一天吃不同类型的糖果。类糖,需要计算两个区间,判断这两个区间是否存在交集。对于第二个区间,为了快速得到吃糖果数量的区间,需要计算数组。标题:你能在你最喜欢的那天吃到你最喜欢的糖果吗?一次计算每个查询的结果,每个查询的计算时间是。个查询,如果对应的两个区间存在交集,则。同时给定一个二维数组。天可以吃糖果的数量的区间记为。类糖的吃糖果数量的区间记为。类糖,吃糖的数量一定大于。颗糖果的前提下可以在第。颗糖的情况下是否能在第。,为了判断在每天至少吃。的前缀和,即下标范围。
2025-07-07 18:00:00
781
原创 前缀和题目:满足三条件之一需改变的最少字符数
对于三个条件分别得到满足每个条件的最少操作数之后,其中的最小值即为达成目标所需的最少操作数。为了计算达成目标所需的最少操作数,需要分别计算使两个字符串满足每个条件的最少操作数。的数组记录每个字母的出现次数,然后分别计算两个数组的前缀和数组,记为。第一个条件和第二个条件相似,可以使用前缀和的思想计算最少操作数。的时间,计算前缀和数组以及计算满足每个条件的最少操作数需要。满足第一个条件和第二个条件的最少操作数计算如下。遍历所有的字母之后即可得到满足第三个条件的最少操作数。个小写字母计算操作数。
2025-07-03 18:00:00
1524
原创 前缀和题目:航班预订统计
最直观的做法是对于每个预订更新航班区间中的所有航班的座位数,最坏情况下每个预订需要。为了降低更新航班座位数的时间复杂度,需要使用差分数组。的时间更新航班的座位数,该时间复杂度过高,需要优化。,答案数组的其余相邻元素之间的差值都不变,因此可以将。遍历所有预订之后,计算差分数组的前缀和数组,即为答案。计算前缀和并更新数组中的每个元素值,遍历结束之后的。,计算答案数组需要遍历差分数组一次计算前缀和,时间是。已经转换成答案数组的下标,需要将答案数组。更新差分数组,每次更新的时间是。,答案数组的下标范围是。
2025-06-30 18:00:00
1614
原创 前缀和题目:连续数组
需要遍历数组一次计算前缀和,对于每个元素,更新前缀和、计算答案与操作哈希表的时间都是。由于这道题要求寻找符合要求的最长子数组,因此需要记录每个前缀和的第一次出现的下标。,遍历过程中计算前缀和,并使用哈希表记录每个前缀和的首次出现下标,同时维护。由于哈希表中存储的是每个前缀和第一次出现的下标,因此当遍历到下标。,如果这两个下标对应的前缀和相同,则下标范围。时,如果哈希表中存在相同前缀和的下标。数量相同的最长子数组,当子数组中的。的每个子数组,判断每个子数组中的。数量相同的最长子数组)的长度是。
2025-06-26 18:00:00
1722
原创 前缀和题目:连续的子数组和
的余数,并使用哈希表记录每个余数的首次出现下标。空间复杂度主要取决于哈希表,哈希表中的不同余数个数不超过。,因此应该寻找符合要求的最长子数组,需要记录每个余数的第一次出现的下标。的余数,对于每个元素,更新余数、计算答案与操作哈希表的时间都是。由于哈希表中存储的是每个余数第一次出现的下标,因此当遍历到下标。的前缀和,根据前缀和得到任意一个子数组的元素和。表示当前下标,则以当前元素结尾的和为。的值之后,判断哈希表中是否存在余数。时,如果哈希表中存在相同余数的下标。的子数组的元素和,需要计算数组。
2025-06-23 18:00:00
613
原创 前缀和题目:和可被 K 整除的子数组
的余数,并使用哈希表记录每个余数的出现次数。的余数,对于每个元素,更新余数、计算答案与操作哈希表的时间都是。子数组个数,因此对于遍历到的每个元素,必须在获得哈希表中的余数。的值之后,如果存在以当前元素结尾的子数组的元素和能被。的前缀和,根据前缀和得到任意一个子数组的元素和。整除,则一定存在更短的前缀满足前缀和模。,则表示已经遍历过的前缀中不存在前缀和模。的出现次数,否则会多计算空子数组的情况。的出现次数之后更新哈希表中的余数。的子数组的元素和,需要计算数组。,则以当前元素结尾的子数组中有。
2025-06-19 18:00:00
1820
原创 前缀和题目:和为 K 的子数组
遍历过程中计算前缀和,并使用哈希表记录每个前缀和的出现次数。需要遍历数组一次计算前缀和,对于每个元素,更新前缀和、计算答案与操作哈希表的时间都是。可以使用前缀和的思想,计算以每个元素结尾的子数组中有多少个子数组的元素和等于。子数组个数,因此对于遍历到的每个元素,必须在获得哈希表中的前缀和。空间复杂度主要取决于哈希表,哈希表中的不同前缀和个数为。的值之后,如果存在以当前元素结尾的子数组的元素和等于。子数组是数组中的元素组成的连续非空子序列。的出现次数之后更新哈希表中的前缀和。个子数组的元素和等于。
2025-06-16 18:00:00
1470
原创 前缀和题目:子数组异或查询
因此计算子数组的元素按位异或时,不能使用遍历子数组的做法,而是需要使用时间复杂度更低的做法。可以使用前缀和的思想实现。这道题要求对于每个查询计算子数组的元素按位异或。一次计算每个查询的结果,每个查询的计算时间是。一次计算前缀异或数组,需要遍历数组。的长度以及查询的个数最大为。一次计算得到前缀异或数组。的前缀异或,即下标范围。标题:子数组异或查询。根据按位异或的性质,
2025-06-12 18:00:00
603
原创 前缀和题目:寻找数组的中心下标
左侧子数组的元素之和即为数组的前缀和,将整个数组的元素之和减去左侧子数组的元素之和以及当前下标处的元素,即可得到右侧子数组的元素之和。对于数组中的特定下标,该下标将数组分成三个部分:下标左侧的子数组、下标处的元素、下标右侧的子数组。左右两侧的子数组可以为空,三个部分的元素之和为整个数组的元素之和。不是中心下标时,需要从左到右遍历数组寻找中心下标,遍历过程中更新左侧子数组的元素之和与右侧子数组的元素之和。是数组的一个下标,其左侧(不包含中心下标)所有元素的和等于其右侧(不包含中心下标)所有元素的和。
2025-06-09 18:00:00
687
原创 前缀和题目:逐步求和得到正数的最小值
加上数组中从首个元素到该元素的所有元素的前缀和,因此从左到右遍历数组,遍历过程中依次计算每个元素的前缀和,并确保累加和总是不小于。表示前缀和,从左到右遍历数组的过程中,依次将每个元素加到。需要遍历数组一次计算每个元素的前缀和。中的元素(从左到右)累加求和。都只会将值增加,因此可以确保。标题:逐步求和得到正数的最小值。,需要确保对于每个元素都满足。是正整数,因此其最小值是。为了确保累加和总是不小于。即为确保累加和总是不小于。,使得累加和总是大于等于。,在第三次累加时,和小于。每个元素的累加和等于。
2025-06-05 18:00:00
871
原创 前缀和题目:一维数组的动态和
按照下标从小到大的顺序依次计算每个元素的动态和,则计算每个元素的动态和的时间是。中的所有元素之和,因此可以直接计算动态和。计算每个元素的动态和的时间是。计算每个元素的动态和的时间是。注意返回值不计入空间复杂度。注意返回值不计入空间复杂度。解释:动态和计算过程为。解释:动态和计算过程为。标题:一维数组的动态和。
2025-06-02 18:00:00
643
原创 前缀和实现题目:二维区域和检索 - 矩阵不可变
这道题是「区域和检索 - 数组不可变」的进阶,要求计算子矩阵的元素和。这道题可以复用「区域和检索 - 数组不可变」的做法,计算矩阵每一行的一维前缀和,计算子矩阵的元素和时遍历子矩阵的每一行,但是该做法的每次查询的时间复杂度和查询范围的行数有关,无法实现O1O(1)O1时间的查询。使用二维前缀和,则可以实现O1O(1)O1时间的查询。
2025-05-29 18:00:00
665
原创 前缀和实现题目:区域和检索 - 数组不可变
中的任意子数组的元素和,方法是首先计算数组。的前缀和数组并计算每个元素的前缀和,每次。这道题是一维前缀和的实现与应用。的前缀和数组,然后根据前缀和数组在。时间复杂度:构造方法的时间复杂度是。的时间内计算任意子数组的元素和。构造方法需要创建长度为。操作计算子数组的元素和的时间是。标题:区域和检索 - 数组不可变。的时间计算整个前缀和数组。的前缀和,即下标范围。的值已知时,可以使用。
2025-05-26 18:00:00
724
原创 位运算题目:找出最长的超赞子字符串
当超赞子字符串的长度是奇数时,恰好有一个字符的出现次数是奇数,其余每个字符的出现次数都是偶数。由于只需要考虑每个字符的出现的次数的奇偶性,不需要考虑具体出现次数,因此可以使用二进制数表示一个子字符串中的每个字符的出现次数的奇偶性。由于空前缀中每个字符的出现次数都是。的字符的出现次数是奇数,其余每个字符的出现次数都是偶数,因此是超赞子字符串,该超赞子字符串的长度是。的子字符串中每个字符的出现次数都是偶数,因此是超赞子字符串,该超赞子字符串的长度是。的子字符串中每个字符的出现次数的奇偶性,该子字符串的长度是。
2025-05-19 18:00:00
599
原创 位运算题目:找到最接近目标值的函数值
由于遍历函数值的顺序具有单调性,因此相等的函数值在遍历顺序中一定相邻,每次将函数值入队列时判断当前函数值与上一个入队列的函数值是否相等,即可排除重重复元素。实现方面,区分上一轮的函数值和当前轮的函数值的做法有多种,可以创建两个列表分别存储上一轮的函数值和当前轮的函数值,也可以使用队列存储函数值。使用队列的做法如下。作为子数组的右侧端点,当前轮的函数值包括上一轮的每个函数值分别与。,计算当前轮的每个函数值与目标值的差的绝对值,更新最小差值。时,队列中的元素为上一轮的所有函数值,记录此时队列的大小。
2025-05-15 18:00:00
1510
原创 位运算题目:黑板异或游戏
如果擦掉一个数字后,剩余的所有数字按位异或运算的结果等于。如果 Alice 面临失败,则只有一种情况:Alice 擦掉数字之前,剩余的所有数字的按位异或运算结果不是。是偶数时,Alice 一定可以找到一个数字,擦掉该数字之后,剩余的所有数字的按位异或运算的结果不是。那么 Bob 可以擦掉任意数字,因为 Alice 会成为擦掉最后一个数字的人,她总是会输。,且 Alice 擦掉任意一个数字之后,剩余的所有数字的按位异或运算结果是。是奇数时需要遍历数组计算所有数字的按位异或运算结果,时间复杂度是。
2025-05-12 18:00:00
769
原创 位运算题目:安排电影院座位
需要遍历每个被预约的座位计算每一行对应的二进制数并存入哈希表,然后遍历哈希表根据每一行对应的二进制数计算可以安排入座的四人家庭的最大数量,由于遍历每个被预约的座位以及遍历哈希表中的每一行的操作的时间都是。都未被预约则可以安排一个四人家庭入座右边座位,分别判断左边座位和右边座位是否可以安排四人家庭入座,得到可以安排入座的四人家庭数。都未被预约则可以安排一个四人家庭入座中间座位,判断中间座位是否可以安排四人家庭入座,得到可以安排入座的四人家庭数。蓝色的叉表示被预约的座位,橙色的连续座位表示一个四人家庭。
2025-05-08 18:00:00
590
原创 位运算题目:按位与为零的三元组
的值的计数并使用哈希表记录,枚举结束后,哈希表中包含每个三元组中的前两个整数的排列以及计数。枚举结束后,即可得到按位与为零的三元组的数量。的时间,枚举三元组的最后一个数并计算按位与为零的三元组数量需要。,因此可以使用数组代替哈希表,作为哈希表的数组的长度为数组。计算按位与为零的三元组的数量,该做法的时间复杂度是。表示每个三元组中的三个整数,按照顺序依次是。中的每个整数都可以作为三元组中的。,因此存在按位与为零的三元组。固定时,按位与为零的三元组。的时间,因此时间复杂度是。标题:按位与为零的三元组。
2025-05-05 18:00:00
1019
原创 位运算题目:寻找重复数
由于数组的长度是n1n + 1n1,且最多包含nnn个不同的整数。根据抽屉原理(或鸽笼原理)可知,将数组的n1n + 1n1个位置分配到nnn个不同的整数,至少有两个位置分配到同一个整数,即该整数在数组中重复。因此数组中至少存在一个重复的数字。由于这道题要求不修改数组且空间复杂度是O1O(1)O1,因此排序、哈希表等解法都是不允许的,需要使用其他解法寻找重复的数字。
2025-05-01 18:00:00
1735
原创 位运算题目:两数相除
其余情况,为了方便处理,首先根据被除数和除数的正负性判断商的正负性,然后将被除数和除数都变成负数,计算商的绝对值。的绝对值时,商的剩余部分取整的结果是零,因此结束计算,此时即可得到两数相除的结果的绝对值,根据事先判断的商的正负性得到两数相除的结果。首先将除数左移,使得在除数的绝对值不超过被除数的绝对值的情况下,将除数的绝对值最大化。,要求不使用乘法、除法和取余运算符,计算两个整数的除法。的绝对值,然后重复上述操作,计算两数相除的结果。需要注意的是,由于上述计算过程比较的是绝对值,而。的绝对值,结束计算。
2025-04-28 18:00:00
1486
原创 位运算题目:解码异或后的排列
的所有奇数下标处的元素的异或结果,记为。的所有整数计算总异或值,然后遍历长度为。的值,则可以解码得到完整的原始数组。个元素,使得这些元素的异或结果为。,利用按位异或的性质可以得到。,利用按位异或的性质可以得到。注意返回值不计入空间复杂度。的所有整数的异或结果,则。题目保证答案存在且唯一。个元素的异或结果,等于。它被加密成另一个长度为。的值,即可得到原数组。标题:解码异或后的排列。,且原数组的结果唯一。
2025-04-24 18:00:00
576
原创 位运算题目:循环码排列
这道题要求对于给定的整数nnn生成包含000到2n−12^n - 12n−1的排列,要求排列中的任意两个相邻元素之间以及首个整数和最后一个整数之间都满足二进制表示只有一位不同,该性质与格雷码序列的性质相同。因此,这道题的本质是计算nnn位格雷码序列。由于这道题还指定了排列的首个整数startstart,因此需要从startstart开始按格雷码序列的顺序遍历每个整数,得到有效的排列。可以使用「格雷编码」的做法得到nnn位格雷码序列,然后根据排列的首个整数。
2025-04-21 18:00:00
1205
原创 位运算题目:格雷编码
需要证明根据上述方法将整数的二进制表示转换成格雷码得到的格雷码序列符合格雷码规则。可以通过数学归纳法证明根据上述做法生成的格雷码序列符合格雷码规则。另一种计算格雷码的方法是根据整数的二进制表示直接转换成格雷码。分别表示同一个整数的二进制表示和格雷码,当格雷码序列的位数是。根据上述方法将整数的二进制表示转换成格雷码,即可得到格雷码序列。的两个连续子序列分别符合格雷码规则。的连续子序列分别符合格雷码规则,即下标范围。也是一个有效的格雷码序列,其二进制表示是。当格雷码序列的位数是。当格雷码序列的位数是。
2025-04-17 18:00:00
642
原创 位运算题目:连接连续二进制数字
的二进制表示连接得到一个二进制数,返回连接得到的二进制数对应的十进制数对。的二进制表示的连接结果可能很长,因此需要在遍历连接结果的过程中计算结果。的每个整数的二进制表示的位数,即可得到连接的结果对应的整数。表示当前整数的二进制表示的位数,初始时。的二进制表示的连接结果对应的整数。个整数,每个整数的操作时间都是。的时间内判断一个整数是不是。的连接结果对应的整数是将。的连接结果对应的整数是。的二进制表示的位数比。的二进制表示的位数多。的二进制表示的位数是。的每个整数,对于整数。的二进制表示的位数。
2025-04-14 18:00:00
669
原创 位运算题目:形成两个异或相等数组的三元组数目
的所有子数组,对于每个子数组计算子数组中的所有元素的按位异或运算结果。的时间计算子数组中的所有元素的按位异或运算结果,因此时间复杂度是。使用该方法,计算一个子数组中的所有元素的按位异或运算结果的时间是。,对于每个子数组计算子数组中的所有元素的按位异或运算结果的时间是。的子数组中的所有元素的按位异或运算结果等于。中的所有元素的按位异或运算结果,因此。,则该子数组中符合要求的三元组的数目是。中的所有元素的按位异或运算结果等于。中的所有元素的按位异或运算结果,中的所有元素的按位异或运算结果。
2025-04-10 18:00:00
856
原创 位运算题目:N 天后的牢房
天的牢房状态,需要使用两个哈希表分别记录每个牢房状态首次出现的天数以及每天对应的牢房状态。由于题目给定的牢房状态是数组的形式,数组不适合存入哈希表,因此需要使用位运算将数组表示的牢房状态转换成整数表示的牢房状态,整数为。从牢房的初始状态开始模拟,计算每天的牢房状态并将状态和天数分别存入两个哈希表,当遇到结束条件时,结束模拟并计算第。由于不同的状态数非常有限,因此在牢房状态的变化过程中一定会出现与之前重复的状态,即出现循环。天的牢房状态,将当前的牢房状态转成数组的形式返回。
2025-04-07 18:00:00
672
原创 位运算题目:数字范围按位与
的二进制表示中除了最高位以外的每一位,将相等的位加到公共前缀中,遍历结束或者遇到不相等的位时结束遍历,遍历结束之后即可得到按位与运算的结果。的二进制表示的连续最高位的相同部分,称为公共前缀。,因此遍历区间中的所有整数的时间复杂度过高,需要考虑时间复杂度更低的做法。的二进制表示的最长公共前缀。的二进制表示的最长公共前缀,该最长公共前缀后面的位都用。位到最高位,则两个数的按位与运算的结果的第。中的所有整数的按位与运算的结果等价于计算。位的值不同,因此按位与运算的结果的第。中的所有整数按位与运算的结果的第。
2025-04-03 18:00:00
620
原创 位运算题目:汉明距离总和
的个数并计算该位对汉明距离总和的贡献。所有位对汉明距离总和的贡献之和即为汉明距离总和。计算所有元素对之间的汉明距离总和,最直观的做法是遍历所有的元素对并计算汉明距离。只要考虑二进制表示的每一位对汉明距离总和的贡献,即可得到汉明距离总和。根据上述分析,计算汉明距离总和的做法如下:依次遍历二进制表示的每一位,共。两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。的时间计算该位对汉明距离总和的贡献,因此时间复杂度是。个,因此该位对汉明距离总和的贡献是。中任意两个数之间的汉明距离的总和。
2025-03-31 18:00:00
759
原创 位运算题目:UTF-8 编码验证
中的每个元素,判断是否符合 UTF-8 编码的规则。每个 UTF-8 编码字符的字节数由该字符的第一个字节决定,根据第一个字节即可知道该字符的字节数。对于遍历到的每个字符,判断是否符合 UTF-8 编码的规则。才可能是有效的 UTF-8 编码,如果该下标范围中存在一个元素的二进制表示的最高两位不是。是否为有效的 UTF-8 编码,需要遍历数组,判断是否符合 UTF-8 编码的规则。中的所有字符都符合 UTF-8 编码的规则,返回。,则判断当前字符是否符合 UTF-8 编码的规则。注意:输入是整数数组。
2025-03-27 18:00:00
993
原创 位运算题目:最大单词长度乘积
得到每个单词的二进制表示之后,判断两个单词是否含有公共字母时,可以计算这两个单词对应的二进制表示的按位与运算结果。中的每一对单词,判断两个单词是否含有公共字母,如果没有公共字母则计算这两个单词长度的乘积。的时间,如果通过遍历两个单词判断两个单词是否含有公共字母,则时间复杂度高于。时,才需要计算这两个单词长度的乘积,并更新最大单词长度乘积。的时间内判断两个单词是否含有公共字母,则时间复杂度是。则表示该位对应的字母在单词中出现,如果一个二进制位是。,则这两个单词含有公共字母,按位与运算结果中不是。
2025-03-24 18:00:00
702
原创 位运算题目:或运算的最小翻转次数
时间复杂度主要取决于需要遍历的二进制表示的位数,需要遍历的二进制表示的位数取决于。,只要将其中一个值翻转即可使当前位满足按位或运算规则,因此当前位的翻转次数是。时,其余位一定满足按位或运算规则,因此结束遍历,此时即可得到使。翻转才能使当前位满足按位或运算规则,因此当前位的翻转次数是。,则当前位不满足按位或运算规则,当前位的翻转次数计算如下。成立的最小翻转次数,如果翻转次数更少,则一定无法使。的二进制表示进行位翻转操作,返回能够使按位或运算。位翻转操作是指将一个数的二进制表示的任何一个位上的。
2025-03-20 18:00:00
1056
原创 位运算题目:两整数之和
在不允许使用加号和减号的情况下计算两整数之和,必须使用其他运算符。考虑整数的二进制表示,使用位运算实现计算两整数之和。两整数之和的进位部分等于两整数按位与运算左移一位的结果,两整数之和的非进位部分等于两整数按位异或运算的结果。的值之后,进位后的结果都会左移,因此递归调用的层数不会超过二进制表示的位数,即。为负数时,由于负数使用补码表示,因此上述做法也可以得到正确的结果。为非负数时,上述做法可以得到正确的结果。,因此操作次数由二进制表示的位数决定。,返回两整数之和。的二进制表示的相同位都是。
2025-03-17 18:00:00
763
算法导论英语版
2014-07-14
Neural Networks—Tricks of the Trade (2nd Edition).pdf
2019-08-22
数据结构与Java算法第四版
2013-11-21
Foundations of Statistical Natural Language Processing
2017-03-08
语言与机器:计算机科学理论介绍
2013-11-21
Statistical Decision Theory and Bayesian Analysis (2nd Edition)
2017-03-08
概率与计算
2014-03-06
C程序设计语言(第二版)
2017-03-12
神经网络与深度学习
2018-10-14
Deep Learning (Ian Goodfellow, Yoshua Bengio, Aaron Courville)
2017-03-08
Deep Learning (Yoshua Bengio, Ian Goodfellow, Aaron Courville, October 03, 2015)
2015-10-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人