自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(420)
  • 资源 (30)
  • 收藏
  • 关注

原创 前缀和的概念

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

2025-05-22 18:00:00 622

原创 数据结构和算法文章目录

文章目录算法 + 数据结构 = 程序数据结构概述常用数据结构高级数据结构算法概述数学算法 + 数据结构 = 程序Pascal 之父尼古拉斯·沃斯(Nicklaus Wirth)凭借一句话获得了图灵奖,让他获得图灵奖的是他提出的著名公式:算法 + 数据结构 = 程序。数据结构和算法是程序中的两个不同的概念,又有所联系。数据结构是数据的表示形式,算法是解决问题的流程,算法在程序中的体现是函数或方法。算法中经常用到数据结构,因此数据结构和算法之间存在密切的联系。数据结构概述数据结构虽然有多种类型,但是大

2021-06-08 19:03:27 235

原创 前缀和实现题目:二维区域和检索 - 矩阵不可变

这道题是「区域和检索 - 数组不可变」的进阶,要求计算子矩阵的元素和。这道题可以复用「区域和检索 - 数组不可变」的做法,计算矩阵每一行的一维前缀和,计算子矩阵的元素和时遍历子矩阵的每一行,但是该做法的每次查询的时间复杂度和查询范围的行数有关,无法实现O1O(1)O1时间的查询。使用二维前缀和,则可以实现O1O(1)O1时间的查询。

2025-05-29 18:00:00 634

原创 前缀和实现题目:区域和检索 - 数组不可变

中的任意子数组的元素和,方法是首先计算数组。的前缀和数组并计算每个元素的前缀和,每次。这道题是一维前缀和的实现与应用。的前缀和数组,然后根据前缀和数组在。时间复杂度:构造方法的时间复杂度是。的时间内计算任意子数组的元素和。构造方法需要创建长度为。操作计算子数组的元素和的时间是。标题:区域和检索 - 数组不可变。的时间计算整个前缀和数组。的前缀和,即下标范围。的值已知时,可以使用。

2025-05-26 18:00:00 714

原创 位运算题目:找出最长的超赞子字符串

当超赞子字符串的长度是奇数时,恰好有一个字符的出现次数是奇数,其余每个字符的出现次数都是偶数。由于只需要考虑每个字符的出现的次数的奇偶性,不需要考虑具体出现次数,因此可以使用二进制数表示一个子字符串中的每个字符的出现次数的奇偶性。由于空前缀中每个字符的出现次数都是。的字符的出现次数是奇数,其余每个字符的出现次数都是偶数,因此是超赞子字符串,该超赞子字符串的长度是。的子字符串中每个字符的出现次数都是偶数,因此是超赞子字符串,该超赞子字符串的长度是。的子字符串中每个字符的出现次数的奇偶性,该子字符串的长度是。

2025-05-19 18:00:00 595

原创 位运算题目:找到最接近目标值的函数值

由于遍历函数值的顺序具有单调性,因此相等的函数值在遍历顺序中一定相邻,每次将函数值入队列时判断当前函数值与上一个入队列的函数值是否相等,即可排除重重复元素。实现方面,区分上一轮的函数值和当前轮的函数值的做法有多种,可以创建两个列表分别存储上一轮的函数值和当前轮的函数值,也可以使用队列存储函数值。使用队列的做法如下。作为子数组的右侧端点,当前轮的函数值包括上一轮的每个函数值分别与。,计算当前轮的每个函数值与目标值的差的绝对值,更新最小差值。时,队列中的元素为上一轮的所有函数值,记录此时队列的大小。

2025-05-15 18:00:00 1500

原创 位运算题目:黑板异或游戏

如果擦掉一个数字后,剩余的所有数字按位异或运算的结果等于。如果 Alice 面临失败,则只有一种情况:Alice 擦掉数字之前,剩余的所有数字的按位异或运算结果不是。是偶数时,Alice 一定可以找到一个数字,擦掉该数字之后,剩余的所有数字的按位异或运算的结果不是。那么 Bob 可以擦掉任意数字,因为 Alice 会成为擦掉最后一个数字的人,她总是会输。,且 Alice 擦掉任意一个数字之后,剩余的所有数字的按位异或运算结果是。是奇数时需要遍历数组计算所有数字的按位异或运算结果,时间复杂度是。

2025-05-12 18:00:00 755

原创 位运算题目:安排电影院座位

需要遍历每个被预约的座位计算每一行对应的二进制数并存入哈希表,然后遍历哈希表根据每一行对应的二进制数计算可以安排入座的四人家庭的最大数量,由于遍历每个被预约的座位以及遍历哈希表中的每一行的操作的时间都是。都未被预约则可以安排一个四人家庭入座右边座位,分别判断左边座位和右边座位是否可以安排四人家庭入座,得到可以安排入座的四人家庭数。都未被预约则可以安排一个四人家庭入座中间座位,判断中间座位是否可以安排四人家庭入座,得到可以安排入座的四人家庭数。蓝色的叉表示被预约的座位,橙色的连续座位表示一个四人家庭。

2025-05-08 18:00:00 581

原创 位运算题目:按位与为零的三元组

的值的计数并使用哈希表记录,枚举结束后,哈希表中包含每个三元组中的前两个整数的排列以及计数。枚举结束后,即可得到按位与为零的三元组的数量。的时间,枚举三元组的最后一个数并计算按位与为零的三元组数量需要。,因此可以使用数组代替哈希表,作为哈希表的数组的长度为数组。计算按位与为零的三元组的数量,该做法的时间复杂度是。表示每个三元组中的三个整数,按照顺序依次是。中的每个整数都可以作为三元组中的。,因此存在按位与为零的三元组。固定时,按位与为零的三元组。的时间,因此时间复杂度是。标题:按位与为零的三元组。

2025-05-05 18:00:00 985

原创 位运算题目:寻找重复数

由于数组的长度是n1n + 1n1,且最多包含nnn个不同的整数。根据抽屉原理(或鸽笼原理)可知,将数组的n1n + 1n1个位置分配到nnn个不同的整数,至少有两个位置分配到同一个整数,即该整数在数组中重复。因此数组中至少存在一个重复的数字。由于这道题要求不修改数组且空间复杂度是O1O(1)O1,因此排序、哈希表等解法都是不允许的,需要使用其他解法寻找重复的数字。

2025-05-01 18:00:00 1695

原创 位运算题目:两数相除

其余情况,为了方便处理,首先根据被除数和除数的正负性判断商的正负性,然后将被除数和除数都变成负数,计算商的绝对值。的绝对值时,商的剩余部分取整的结果是零,因此结束计算,此时即可得到两数相除的结果的绝对值,根据事先判断的商的正负性得到两数相除的结果。首先将除数左移,使得在除数的绝对值不超过被除数的绝对值的情况下,将除数的绝对值最大化。,要求不使用乘法、除法和取余运算符,计算两个整数的除法。的绝对值,然后重复上述操作,计算两数相除的结果。需要注意的是,由于上述计算过程比较的是绝对值,而。的绝对值,结束计算。

2025-04-28 18:00:00 1469

原创 位运算题目:解码异或后的排列

的所有奇数下标处的元素的异或结果,记为。的所有整数计算总异或值,然后遍历长度为。的值,则可以解码得到完整的原始数组。个元素,使得这些元素的异或结果为。,利用按位异或的性质可以得到。,利用按位异或的性质可以得到。注意返回值不计入空间复杂度。的所有整数的异或结果,则。题目保证答案存在且唯一。个元素的异或结果,等于。它被加密成另一个长度为。的值,即可得到原数组。标题:解码异或后的排列。,且原数组的结果唯一。

2025-04-24 18:00:00 568

原创 位运算题目:循环码排列

这道题要求对于给定的整数nnn生成包含000到2n−12^n - 12n−1的排列,要求排列中的任意两个相邻元素之间以及首个整数和最后一个整数之间都满足二进制表示只有一位不同,该性质与格雷码序列的性质相同。因此,这道题的本质是计算nnn位格雷码序列。由于这道题还指定了排列的首个整数startstart,因此需要从startstart开始按格雷码序列的顺序遍历每个整数,得到有效的排列。可以使用「格雷编码」的做法得到nnn位格雷码序列,然后根据排列的首个整数。

2025-04-21 18:00:00 1180

原创 位运算题目:格雷编码

需要证明根据上述方法将整数的二进制表示转换成格雷码得到的格雷码序列符合格雷码规则。可以通过数学归纳法证明根据上述做法生成的格雷码序列符合格雷码规则。另一种计算格雷码的方法是根据整数的二进制表示直接转换成格雷码。分别表示同一个整数的二进制表示和格雷码,当格雷码序列的位数是。根据上述方法将整数的二进制表示转换成格雷码,即可得到格雷码序列。的两个连续子序列分别符合格雷码规则。的连续子序列分别符合格雷码规则,即下标范围。也是一个有效的格雷码序列,其二进制表示是。当格雷码序列的位数是。当格雷码序列的位数是。

2025-04-17 18:00:00 608

原创 位运算题目:连接连续二进制数字

的二进制表示连接得到一个二进制数,返回连接得到的二进制数对应的十进制数对。的二进制表示的连接结果可能很长,因此需要在遍历连接结果的过程中计算结果。的每个整数的二进制表示的位数,即可得到连接的结果对应的整数。表示当前整数的二进制表示的位数,初始时。的二进制表示的连接结果对应的整数。个整数,每个整数的操作时间都是。的时间内判断一个整数是不是。的连接结果对应的整数是将。的连接结果对应的整数是。的二进制表示的位数比。的二进制表示的位数多。的二进制表示的位数是。的每个整数,对于整数。的二进制表示的位数。

2025-04-14 18:00:00 653

原创 位运算题目:形成两个异或相等数组的三元组数目

的所有子数组,对于每个子数组计算子数组中的所有元素的按位异或运算结果。的时间计算子数组中的所有元素的按位异或运算结果,因此时间复杂度是。使用该方法,计算一个子数组中的所有元素的按位异或运算结果的时间是。,对于每个子数组计算子数组中的所有元素的按位异或运算结果的时间是。的子数组中的所有元素的按位异或运算结果等于。中的所有元素的按位异或运算结果,因此。,则该子数组中符合要求的三元组的数目是。中的所有元素的按位异或运算结果等于。中的所有元素的按位异或运算结果,中的所有元素的按位异或运算结果。

2025-04-10 18:00:00 844

原创 位运算题目:N 天后的牢房

天的牢房状态,需要使用两个哈希表分别记录每个牢房状态首次出现的天数以及每天对应的牢房状态。由于题目给定的牢房状态是数组的形式,数组不适合存入哈希表,因此需要使用位运算将数组表示的牢房状态转换成整数表示的牢房状态,整数为。从牢房的初始状态开始模拟,计算每天的牢房状态并将状态和天数分别存入两个哈希表,当遇到结束条件时,结束模拟并计算第。由于不同的状态数非常有限,因此在牢房状态的变化过程中一定会出现与之前重复的状态,即出现循环。天的牢房状态,将当前的牢房状态转成数组的形式返回。

2025-04-07 18:00:00 665

原创 位运算题目:数字范围按位与

的二进制表示中除了最高位以外的每一位,将相等的位加到公共前缀中,遍历结束或者遇到不相等的位时结束遍历,遍历结束之后即可得到按位与运算的结果。的二进制表示的连续最高位的相同部分,称为公共前缀。,因此遍历区间中的所有整数的时间复杂度过高,需要考虑时间复杂度更低的做法。的二进制表示的最长公共前缀。的二进制表示的最长公共前缀,该最长公共前缀后面的位都用。位到最高位,则两个数的按位与运算的结果的第。中的所有整数的按位与运算的结果等价于计算。位的值不同,因此按位与运算的结果的第。中的所有整数按位与运算的结果的第。

2025-04-03 18:00:00 606

原创 位运算题目:汉明距离总和

的个数并计算该位对汉明距离总和的贡献。所有位对汉明距离总和的贡献之和即为汉明距离总和。计算所有元素对之间的汉明距离总和,最直观的做法是遍历所有的元素对并计算汉明距离。只要考虑二进制表示的每一位对汉明距离总和的贡献,即可得到汉明距离总和。根据上述分析,计算汉明距离总和的做法如下:依次遍历二进制表示的每一位,共。两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。的时间计算该位对汉明距离总和的贡献,因此时间复杂度是。个,因此该位对汉明距离总和的贡献是。中任意两个数之间的汉明距离的总和。

2025-03-31 18:00:00 750

原创 位运算题目:UTF-8 编码验证

中的每个元素,判断是否符合 UTF-8 编码的规则。每个 UTF-8 编码字符的字节数由该字符的第一个字节决定,根据第一个字节即可知道该字符的字节数。对于遍历到的每个字符,判断是否符合 UTF-8 编码的规则。才可能是有效的 UTF-8 编码,如果该下标范围中存在一个元素的二进制表示的最高两位不是。是否为有效的 UTF-8 编码,需要遍历数组,判断是否符合 UTF-8 编码的规则。中的所有字符都符合 UTF-8 编码的规则,返回。,则判断当前字符是否符合 UTF-8 编码的规则。注意:输入是整数数组。

2025-03-27 18:00:00 975

原创 位运算题目:最大单词长度乘积

得到每个单词的二进制表示之后,判断两个单词是否含有公共字母时,可以计算这两个单词对应的二进制表示的按位与运算结果。中的每一对单词,判断两个单词是否含有公共字母,如果没有公共字母则计算这两个单词长度的乘积。的时间,如果通过遍历两个单词判断两个单词是否含有公共字母,则时间复杂度高于。时,才需要计算这两个单词长度的乘积,并更新最大单词长度乘积。的时间内判断两个单词是否含有公共字母,则时间复杂度是。则表示该位对应的字母在单词中出现,如果一个二进制位是。,则这两个单词含有公共字母,按位与运算结果中不是。

2025-03-24 18:00:00 695

原创 位运算题目:或运算的最小翻转次数

时间复杂度主要取决于需要遍历的二进制表示的位数,需要遍历的二进制表示的位数取决于。,只要将其中一个值翻转即可使当前位满足按位或运算规则,因此当前位的翻转次数是。时,其余位一定满足按位或运算规则,因此结束遍历,此时即可得到使。翻转才能使当前位满足按位或运算规则,因此当前位的翻转次数是。,则当前位不满足按位或运算规则,当前位的翻转次数计算如下。成立的最小翻转次数,如果翻转次数更少,则一定无法使。的二进制表示进行位翻转操作,返回能够使按位或运算。位翻转操作是指将一个数的二进制表示的任何一个位上的。

2025-03-20 18:00:00 1051

原创 位运算题目:两整数之和

在不允许使用加号和减号的情况下计算两整数之和,必须使用其他运算符。考虑整数的二进制表示,使用位运算实现计算两整数之和。两整数之和的进位部分等于两整数按位与运算左移一位的结果,两整数之和的非进位部分等于两整数按位异或运算的结果。的值之后,进位后的结果都会左移,因此递归调用的层数不会超过二进制表示的位数,即。为负数时,由于负数使用补码表示,因此上述做法也可以得到正确的结果。为非负数时,上述做法可以得到正确的结果。,因此操作次数由二进制表示的位数决定。​​​​​,返回两整数之和。的二进制表示的相同位都是。

2025-03-17 18:00:00 752

原创 位运算题目:数字转换为十六进制数

是零或正数时,上述转换方法得到的十六进制数可能有前导零。为了避免前导零,应该从第一个不是零的值开始拼接十六进制数。转换成十六进制,需要使用位运算的做法。由于一位十六进制数对应四位二进制数,因此从高到低遍历。答案中的所有字母都应该是小写,除了零本身以外,答案中不应该有前导零。的二进制表示,每次遍历四位二进制数并将其转成十六进制表示。,返回其十六进制表示的字符串。,如果十六进制数不为空则返回十六进制数。,都需要遍历其十六进制表示的全部数位。是整数的十六进制数的位数,对于。是整数的十六进制数的位数,对于。

2025-03-13 18:00:00 930

原创 位运算题目:数字的补数

一个整数的补数是将该整数的二进制表示中的所有。的二进制表示的最前面添加一个。(没有前导零位),其补数为。(没有前导零位),其补数为。位二进制数(不含前导零),,因此在上述计算过程中,,不会出现溢出的情况。

2025-03-10 18:00:00 678

原创 位运算题目:二进制间距

的除了前导零以外的所有位。之间的距离是它们的二进制表示中位置的绝对差。的二进制表示的最低位的位编号可以通过上述做法得到。的二进制表示的最低位,并得到最低位的位编号。的二进制表示的从低到高的每一位依次记为第。时,遍历结束,此时可以得到最长距离。时,遍历结束,此时可以得到最长距离。的二进制表示的每一位,计算每对相邻的。的二进制表示中没有相邻的两个。答案取两个距离之中的最大距离。的位置,因此只需要遍历每个。根据位运算的性质可得,正整数。之间的距离,得到最长距离。右移一位,则每次可以得到。的二进制表示的最低位是。

2025-03-06 18:00:00 667

原创 位运算题目:二进制手表

表示当前打开的 LED 的数量(忽略 PM),返回二进制手表可以表示的所有可能时间。种,因此可以枚举所有的时间,对于每个时间计算打开的 LED 的数量,如果等于。取何值,都不可能得到符合要求的时间,此时可以跳过当前的。组成的时间即为符合要求的时间,将其添加到结果中。每个 LED 代表一个零或一,最低位在右侧。的个数之和,即为打开的 LED 的数量。小时不能有前导零,除了小时等于零的情况。的个数都是非负数,因此如果。种不同的时间,与输入无关。,所有可能的不同时间是。由于时间的小时范围是。

2025-03-03 18:00:00 706

原创 位运算题目:颠倒二进制位

这道题要求将给定的整数nnn的二进制位颠倒。部分编程语言有自带的方法或函数可以实现该功能,例如 Java 的。面试的时候,面试官不会允许直接调用编程语言自带的方法或函数得到颠倒二进制位之后的结果,而是期望看到面试者使用位运算实现该功能。

2025-02-27 18:00:00 628

原创 位运算题目:汉明距离

计算两个整数的汉明距离,最直观的做法是同时遍历两个整数的二进制表示的每一位,计算不同的位数。利用按位异或的性质,xxx和yyy的汉明距离等于x⊕yx \oplus yx⊕y的二进制表示中的111的个数,因此可以使用「位 1 的个数」的解法计算x⊕yx \oplus yx⊕y的二进制表示中的111的个数。

2025-02-24 18:00:00 595

原创 位运算题目:比特位计数

这道题是「位 1 的个数」的延伸。给定非负整数nnn,要求返回从000到nnn的每个整数的二进制表示中的111的个数。为方便表述,以下用「比特一的个数」表示二进制表示中的111的个数。这道题可以使用「位 1 的个数」的解法计算每个整数的比特一的个数,也可以使用不同整数的比特一的个数之间的关系递推计算。

2025-02-20 18:00:00 838

原创 位运算题目:位 1 的个数

这道题要求返回给定的整数nnn的二进制表示中的111的个数。部分编程语言有自带的方法或函数可以实现该功能,例如 Java 的。面试的时候,面试官不会允许直接调用编程语言自带的方法或函数得到给定整数的二进制表示中的111的个数,而是期望看到面试者使用位运算实现该功能。

2025-02-17 18:00:00 675

原创 位运算题目:交替位二进制数

的二进制表示的每一位,并与前一位比较值是否相同。如果存在两个相邻的二进制位的值相同,则不是交替位二进制数,返回。给定一个正整数,检查它的二进制表示是否是交替出现的,即是否满足二进制表示中相邻两位的数字都不相同。如果任意两个相邻的二进制位的值都不相同,则是交替位二进制数,返回。的二进制表示中的相邻两位的按位异或的结果。除了前导零以外的位中存在两个相等的值的异或结果,因此。除了前导零以外的每一位都是。除了前导零以外的每一位都是。除了前导零以外的每一位都是。除了前导零以外的每一位都是。除了前导零以外的位中存在。

2025-02-13 18:00:00 1336

原创 位运算题目:解码异或后的数组

利用按位异或的性质可以得到。注意返回值不计入空间复杂度。可以证明答案存在并且唯一。的值,即可得到原数组。标题:解码异或后的数组。,且原数组的结果唯一。

2025-02-10 07:00:00 1048

原创 位运算题目:数组异或操作

中的所有元素按位异或的结果(以下简称「数组按位异或结果」)可以通过如下方式计算:将数组。都是奇数时,按位异或的结果才是奇数,否则按位异或的结果是偶数。根据按位异或的性质,对于二进制表示中的特定位,如果该位出现奇数个。中的所有偶数的按位异或结果(当。中的所有偶数的按位异或结果,用。中的所有偶数的按位异或结果,则。中的所有偶数的按位异或结果是。中的所有偶数的按位异或结果是。中的所有偶数的按位异或结果是。中的所有偶数的按位异或结果是。中的所有偶数的按位异或结果是。中的所有偶数的按位异或结果是。

2025-02-06 18:00:00 691

原创 位运算的概念

根据上述例子可知,同一个非负数的原码、反码和补码的表示方法相同,同一个负数的原码、反码和补码的表示方法不同。其中,原码是人脑最容易理解和计算的表示方法,相比之下,反码和补码的表示方法不直观,通常需要转换成原码才能计算其数值。由于使用除号计算整数除法的结果向零取整,而使用算术右移计算整数除法的结果向下取整,因此当被除数是非负数时两者的结果相同,当被除数是负数时两者的结果不同。计算机中的数据类型包括有符号类型和无符号类型,这两种类型表示的整数分别称为有符号整数和无符号整数。机器数是有符号数,最高位是符号位,

2025-02-03 18:00:00 1474

原创 二分查找题目:山脉数组中查找目标值

根据山脉数组的定义,山脉数组中存在唯一的最大值,该最大值为峰顶元素,峰顶元素所在下标为峰顶下标,峰顶左侧和右侧为两个非空子数组。峰顶左侧的子数组为严格单调递增的数组,峰顶右侧的子数组为严格单调递减的数组,因此峰顶同一侧的子数组中的元素各不相同。如果一个元素在山脉数组中出现且该元素不是峰顶元素,则该元素最多在山脉数组中出现两次,即在峰顶左侧的子数组和峰顶右侧的子数组中最多各出现一次。如果峰顶元素等于目标值,则由于峰顶元素在山脉数组中只出现一次,因此峰顶下标即为元素值等于目标值的最小下标,返回峰顶下标。

2025-01-30 18:00:00 644 1

原创 2025 春节联欢晚会魔术揭秘

严格说,杯子在最右边的魔术不是传统意义上的魔术,而是一个可以全民参与的数学问题。交换操作似乎像冒泡排序,其实并不是冒泡排序。冒泡排序是一种比较类排序,即通过比较元素大小决定元素之间的相对顺序的排序方法。冒泡排序的原理是多次遍历序列,每次比较相邻的两个元素,如果顺序错误则交换。排序过程中,大的元素会移动到序列的末尾,如同水中的气泡上浮到顶端,故名冒泡排序。魔术中的操作只是将特定物品和左边或右边的相邻物品互相交换物品,物品之间不存在大小关系,也不能推广到更多物品的场景,因此魔术的原理并非冒泡排序。

2025-01-29 10:54:19 1039

原创 二分查找题目:寻找两个正序数组的中位数

将两个数组的左边部分统称为前半部分,将两个数组的右边部分统称为后半部分,则前半部分的最大值小于等于后半部分的最小值,前半部分的元素个数为两个数组的长度之和的一半向上取整。的值减去排除的元素个数,并将排除元素的数组的相应下标更新为该数组首个剩余元素的下标,具体做法如下:如果排除的是。中的最小值是后半部分的最小值。两个数组的左边部分的长度之和为两个数组的长度之和的一半向上取整,是偶数时,中位数是前半部分的最大值与后半部分的最小值的平均数。两个数组的左边部分的最大值小于等于两个数组的右边部分的最小值,

2025-01-27 18:00:00 979

原创 二分查找题目:快照数组

操作,需要对快照数组的每个下标维护元素值信息,即每个下标处需要维护一个列表记录每次更新的快照编号和更新后的元素值,列表中的每个元素为快照编号和最新元素值的对,且按照快照编号非严格升序排序。并返回更新前的快照编号,因此在整个过程中,快照编号满足非严格单调递增。的快照编号,由于初始时快照数组中的每个元素都等于。处的列表中添加一个元素,该元素为当前快照编号和。的最大快照编号的元素,并返回该元素的值。的最大快照编号的元素,因此初始时。处的元素的快照编号即为小于等于。的最大快照编号,返回列表下标。

2025-01-23 18:00:00 922

原创 二分查找题目:基于时间的键值存储

对于每个关键字,维护一个列表存储该关键字的所有时间戳和值的信息,列表中的每个元素为时间戳和值的对,且按照时间戳升序排序。操作的顺序记录每个关键字对应的所有时间戳和值的信息时,一定满足记录的信息按照时间戳严格升序,此时可以使用二分查找的方式找到相应的值。设计一个基于时间的键值数据结构,该结构可以在不同时间戳存储对应同一个键的多个值,并针对特定时间戳检索键对应的值。为了根据给定的关键字和时间戳得到相应的值,需要记录每个关键字对应的所有时间戳和值的信息。的最大时间戳的元素,并返回该元素的值。等于列表的最大下标。

2025-01-20 18:00:00 829

Weekly Contest 190.zip

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

2020-05-24

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

神经网络与深度学习

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

2018-10-14

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

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

2017-03-12

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

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

2017-03-12

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

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

2017-03-12

Statistical Decision Theory and Bayesian Analysis (2nd Edition)

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

2017-03-08

Foundations of Statistical Natural Language Processing

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

2017-03-08

Recommender Systems Handbook

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

2017-03-08

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

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

2017-03-08

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

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

2015-10-08

算法导论英语版

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

2014-07-14

概率与计算

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

2014-03-06

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

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

2013-11-21

计算理论元素

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

2013-11-21

Learning jQuery 3rd Edition

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

2013-11-21

C++编程思想

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

2013-11-21

计算机系统设计原理下册

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

2013-11-21

计算机系统设计原理上册

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

2013-11-21

数据结构与Java算法第四版

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

2013-11-21

The Design Patterns Java Companion

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

2013-11-21

空空如也

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

TA关注的人

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