自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

C++编程思想

该资源为C++编程思想,可用于学习C++编程。

2013-11-21

算法导论英语版

程序由数据结构和算法组成,算法的重要性不言而喻。《算法导论》内容非常丰富,不但涵盖了典型算法、算法分析、算法设计方法和NP完全等内容,而且还包括数据结构,甚至高级数据结构的介绍。

2014-07-14

Neural Networks—Tricks of the Trade (2nd Edition).pdf

It is our belief that researchers and practitioners acquire, through experience and word-of-mouth, techniques and heuristics that help them successfully apply neural networks to difficult real world problems. Often these "tricks" are theoretically well motivated. Sometimes they are the result of trial and error. However, their most common link is that they are usually hidden in people's heads or in the back pages of space-constrained conference papers. As a result newcomers to the field waste much time wondering why their networks train so slowly and perform so poorly. This book is an outgrowth of a 1996 NIPS workshop called Tricks of the Trade whose goal was to begin the process of gathering and documenting these tricks. The interest that the workshop generated, motivated us to expand our collection and compile it into this book. Although we have no doubt that there are many tricks we have missed, we hope that what we have included will prove to be useful, particularly to those who are relatively new to the field. Each chapter contains one or more tricks presented by a given author (or authors). We have attempted to group related chapters into sections, though we recognize that the different sections are far from disjoint. Some of the chapters (e.g. 1,13,17) contain entire systems of tricks that are far more general than the category they have been placed in.

2019-08-22

数据结构与Java算法第四版

该资源为数据结构与Java算法第四版,Data Structures and Algorithms in Java 4th Edition,可用于学习数据结构相关知识。

2013-11-21

Foundations of Statistical Natural Language Processing

统计自然语言处理英语版,包括统计学习的基本概念和自然语言处理的相关知识。

2017-03-08

语言与机器:计算机科学理论介绍

该资源为语言与机器:计算机科学理论介绍Languages and Machines—An Introduction to the Theory of Computer Science。

2013-11-21

Statistical Decision Theory and Bayesian Analysis (2nd Edition)

统计决策论及贝叶斯分析第二版英语版,概率论和统计学的经典读物。

2017-03-08

统计自然语言处理(宗成庆)

宗成庆著统计自然语言处理,包括统计学习的基本概念和自然语言处理的相关知识。

2017-03-12

概率与计算

该资源是概率与计算中文版,Michael Mitzenmacher、Eli Upfal著,史道济等译。该书详细介绍了概率技术以及在概率算法一分析发展中使用过的范例,适合作为高等院校计算机科学和应用数学专业高年级本科生与低年级研究生的教材,也适合作为数学工作者和科技人员的参考书。

2014-03-06

Weekly Contest 190.zip

该资源是LeetCode第190场周赛的四道题的代码,均为Java代码,可直接贴到LeetCode编辑器内运行,代码均可提交通过。

2020-05-24

C程序设计语言(第二版)

C程序设计语言中文版第2版,由著名的计算机科学家Brian W. Kernighan和C语言之父的Dennis M. Ritchie合著的一部计算机科学著作,是第一部介绍C语言编程方法的书籍。它是一本必读的程序设计语言方面的参考书。

2017-03-12

神经网络与深度学习

神经网络与深度学习,作者Michael Nielsen是一位量子物理学家、科学作家、计算机编程研究人员。 《神经⽹络和深度学习》的内容包括: 神经⽹络,⼀种美妙的受⽣物学启发的编程范式,可以让计算机从观测数据中进⾏学习; 深度学习,⼀个强有⼒的⽤于神经⽹络学习的众多技术的集合。 《神经⽹络和深度学习》给出了在图像识别、语⾳识别和⾃然语⾔处理领域中很多问题的最好解决⽅案。

2018-10-14

Deep Learning (Ian Goodfellow, Yoshua Bengio, Aaron Courville)

机器学习大牛Ian Goodfellow、Yoshua Bengio等人出的关于深度学习的书,为完整版,对于人工智能和深度学习的研究者有很大帮助。

2017-03-08

数据挖掘:概念与技术(第三版)

该资源是数据挖掘:概念与技术中文版第三版,可用于学习数据挖掘相关知识。

2017-03-12

Deep Learning (Yoshua Bengio, Ian Goodfellow, Aaron Courville, October 03, 2015)

机器学习大牛Bengio等人最近出的关于深度学习的书,对于人工智能和深度学习的研究者有很大帮助。

2015-10-08

Recommender Systems Handbook

推荐系统手册,涉及到推荐系统以及相关的机器学习的内容。

2017-03-08

Learning jQuery 3rd Edition

该资源为Learning jQuery第三版,可用于学习网页制作的jQuery相关知识。

2013-11-21

The Design Patterns Java Companion

该资源是设计模式Design Patterns相关内容。

2013-11-21

计算机系统设计原理上册

该资源为计算机系统设计原理上册,为第1章到第6章。

2013-11-21

计算机系统设计原理下册

该资源是计算机系统设计原理下册,为第7章到第11章以及附录。

2013-11-21

计算理论元素

该资源为计算理论元素Elements of the Theory of Computation。

2013-11-21

空空如也

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

TA关注的人

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