11 2023 档案

摘要:一、用go语言,假设一棵二叉搜索树中的结点在1到 1000 之间,现在想要查找数值为 363 的结点。下面序列中哪个不是查找过的序列? a.2,252,401,398,330,344,397,363。 b.924,220,911,244,898,258,362,363。 c.925,202,911, 阅读全文
posted @ 2023-11-30 19:45 福大大架构师每日一题 阅读(28) 评论(0) 推荐(0) 编辑
摘要:2023-11-29:用go语言,给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。 需保证 返回结果的字典序最小。 要求不能打乱其他字符的相对位置)。 输入:s = "cbacdcbc"。 输出:"acdb"。 来自左程云。 答案2023-11-29: 所有的代码用灵捷3. 阅读全文
posted @ 2023-11-29 13:13 福大大架构师每日一题 阅读(24) 评论(0) 推荐(0) 编辑
摘要:五、用go语言,因为在基于比较的排序模型中,完成n个元素的排序,其最坏情况下需要 Ω(nlgn) 时间。试证明:任何基于比较的算法从 n 个元素的任意序列中构造一棵二又搜索树,其最坏情况下需要 Ω(nlgn) 的时间。 我个人喜欢 灵小智 。 文心一言: 首先,我们要明白二叉搜索树(BST)的性质: 阅读全文
posted @ 2023-11-28 10:37 福大大架构师每日一题 阅读(34) 评论(0) 推荐(0) 编辑
摘要:四、用go语言,对于一棵有 n 个结点的树,请设计在 O(n)时间内完成的先序遍历算法和后序遍历算法。 我个人喜欢 灵小智 。 文心一言: 在 Go 语言中,我们可以使用递归来实现树的前序遍历和后序遍历。以下是实现这两种方法的代码。 首先,我们定义一个树节点的结构: type TreeNode st 阅读全文
posted @ 2023-11-27 14:48 福大大架构师每日一题 阅读(14) 评论(0) 推荐(0) 编辑
摘要:三、用go语言,设计一个执行中序遍历的非递归算法。(提示:一种容易的方法是使用栈作为辅助数据结构;另一种较复杂但比较简洁的做法是不使用栈,但要假设能测试两个指针是否相等。) 文心一言,代码正常运行: 我们可以使用栈作为辅助数据结构来执行中序遍历的非递归算法。以下是用Go语言实现的代码: packag 阅读全文
posted @ 2023-11-26 20:54 福大大架构师每日一题 阅读(15) 评论(0) 推荐(0) 编辑
摘要:2023-11-25:用go语言,给定一个数组arr,长度为n,表示n个格子的分数,并且这些格子首尾相连, 孩子不能选相邻的格子,不能回头选,不能选超过一圈, 但是孩子可以决定从任何位置开始选,也可以什么都不选。 返回孩子能获得的最大分值。 1 <= n <= 10^6, 0 <= arr[i] < 阅读全文
posted @ 2023-11-25 17:40 福大大架构师每日一题 阅读(40) 评论(0) 推荐(0) 编辑
摘要:二、用go语言,二叉搜索树性质与最小堆性质(见 6.1 节)之间有什么不同?能使用最小堆性质在 O(n)时间内按序输出一棵有 n 个结点树的关键字吗?可以的话,请说明如何做,否则解释理由。 文心一言: 在二叉搜索树(Binary Search Tree, BST)和最小堆(Min Heap)中,元素 阅读全文
posted @ 2023-11-24 10:16 福大大架构师每日一题 阅读(52) 评论(0) 推荐(0) 编辑
摘要:一、用go语言,对于关键字集合(1,4,5,10,16,17,21),分别画出高度为 2、3、4、5和6的二又搜索树。 文心一言: 以下是用Go语言为给定的关键字集合(1, 4, 5, 10, 16, 17, 21)生成的高度为2、3、4、5和6的二叉搜索树。 由于二叉搜索树的形状对于不同的生成方式 阅读全文
posted @ 2023-11-23 19:28 福大大架构师每日一题 阅读(45) 评论(0) 推荐(0) 编辑
摘要:2023-11-22:用go语言,给你一个长度为 n 下标从 0 开始的整数数组 nums。 它包含 1 到 n 的所有数字,请你返回上升四元组的数目。 如果一个四元组 (i, j, k, l) 满足以下条件,我们称它是上升的: 0 ⇐ i < j < k < l < n 且 nums[i] < n 阅读全文
posted @ 2023-11-22 21:41 福大大架构师每日一题 阅读(29) 评论(0) 推荐(0) 编辑
摘要:五、用go语言,考虑一个装载因子为a的开放寻址散列表。找出一个非零的a值,使得一次不成功查找的探查期望数是一次成功查找的探查期望数的 2 倍。这两个探查期望数可以使用定理11.6 和定理 11.8 中给定的上界。 文心一言,代码正常运行: 在开放寻址法中,一次不成功的查找探查的期望次数可以由装载因子 阅读全文
posted @ 2023-11-21 16:35 福大大架构师每日一题 阅读(41) 评论(0) 推荐(2) 编辑
摘要:三、用go语言,考虑一个采用均匀散列的开放寻址散列表。当装载因子为 3/4 和 7/8 时,试分别给出一次不成功查找和一次成功查找的探查期望数上界。 文心一言: 在开放寻址法中,当散列表的装载因子超过其阈值时,会触发重新哈希。在均匀散列的情况下,我们可以使用二次探查来处理冲突。为了计算探查的期望次数 阅读全文
posted @ 2023-11-20 17:41 福大大架构师每日一题 阅读(40) 评论(0) 推荐(0) 编辑
摘要:二、用go语言,试写出HASH-DELETE 的伪代码;修改 HASH-INSERT,使之能处理特殊值DELETED。 文心一言: 首先,让我们定义一个基本的哈希表数据结构。这个结构将包括一个存储键值对的哈希表和一个存储已删除键值对的队列。我们可以用空值和大括号 {} 来表示“DELETED”。下面 阅读全文
posted @ 2023-11-19 16:10 福大大架构师每日一题 阅读(428) 评论(0) 推荐(0) 编辑
摘要:2023-11-18:用go语言,如果一个正方形矩阵上下对称并且左右对称,对称的意思是互为镜像, 那么称这个正方形矩阵叫做神奇矩阵。 比如 : 1 5 5 1 6 3 3 6 6 3 3 6 1 5 5 1 这个正方形矩阵就是神奇矩阵。 给定一个大矩阵n*m,返回其中神奇矩阵的数目。 1 <= n, 阅读全文
posted @ 2023-11-18 20:48 福大大架构师每日一题 阅读(21) 评论(0) 推荐(0) 编辑
摘要:三、用go语言,考虑除法散列法的另一种版本,其中 h(k) = k mod m,m=$2^p-1$,k为按基数 $2^p$ 表示的字符串。试证明:如果串可由串 y 通过其自身的字符置换排列导出,则x和y具有相同的散列值。给出一个应用的例子,其中这一特性在散列函数中是不希望出现的。 文心一言: 这个问 阅读全文
posted @ 2023-11-17 14:52 福大大架构师每日一题 阅读(24) 评论(0) 推荐(0) 编辑
摘要:二、用go语言,假设将一个长度为r的字符串散列到m 个槽中,并将其视为一个以 128 为基数的数,要求应用除法散列法。我们可以很容易地把数 m 表示为一个 32 位的机器字,但对长度为r的字符串,由于它被当做以 128 为基数的数来处理,就要占用若干个机器字。假设应用除法散列法来计算一个字符串的散列 阅读全文
posted @ 2023-11-16 14:12 福大大架构师每日一题 阅读(51) 评论(0) 推荐(0) 编辑
摘要:2023-11-15:用go语言,如果一个正方形矩阵上下对称并且左右对称,对称的意思是互为镜像, 那么称这个正方形矩阵叫做神奇矩阵, 比如 : 1 5 5 1 6 3 3 6 6 3 3 6 1 5 5 1 这个正方形矩阵就是神奇矩阵。 给定一个大矩阵n*m,返回其中神奇矩阵的数目。 1 <= n, 阅读全文
posted @ 2023-11-15 17:11 福大大架构师每日一题 阅读(11) 评论(0) 推荐(0) 编辑
摘要:一、用go语言,假设我们希望查找一个长度为 n 的链表,其中每一个元素都包含一个关键字k并具有散列值h(k)。每一个关键字都是长字符串。那么在表中查找具有给定关键字的元素时,如何利用各元素的散列值呢? 文心一言: 在Go语言中,你可以通过使用一个哈希表来存储关键字的散列值,并在查找具有给定关键字的元 阅读全文
posted @ 2023-11-14 20:07 福大大架构师每日一题 阅读(26) 评论(0) 推荐(0) 编辑
摘要:六、用go语言,假设将n 个关键字存储到一个大小为 m 且通过链接法解决冲突的散列表中,同时已知每条链的长度,包括其中最长链的长度 L,请描述从散列表的所有关键字中均匀随机地选择某一元素并在 O(L·(1+1/a))的期望时间内返回该关键字的过程。 文心一言,代码不能运行: 在这个问题中,我们需要使 阅读全文
posted @ 2023-11-13 16:09 福大大架构师每日一题 阅读(151) 评论(0) 推荐(0) 编辑
摘要:五、用go语言,假设将一个具有n个关键字的集合存储到一个大小为 m 的散列表中。试说明如果这些关键字均源于全域U,且|U|>nm,则U 中还有一个大小为n 的子集,其由散列到同一槽位中的所有关键字构成,使得链接法散列的查找时间最坏情况下为 O(n)。 文心一言: 这个问题涉及到的是散列表(哈希表)的 阅读全文
posted @ 2023-11-12 20:50 福大大架构师每日一题 阅读(48) 评论(0) 推荐(0) 编辑
摘要:2023-11-11:用go语言,字符串哈希+二分的例题。 给定长为 n 的源串 s,以及长度为 m 的模式串 p, 要求查找源串中有多少子串与模式串匹配, s' 与 s 匹配,当且仅当 s' 与 s 长度相同,且最多有 k 个位置字符不同。 其中 1 <= n, m <= 10^6,0 <= k 阅读全文
posted @ 2023-11-11 20:07 福大大架构师每日一题 阅读(22) 评论(0) 推荐(0) 编辑
摘要:四、用go语言,说明在散列表内部,如何通过将所有未占用的槽位链接成一个自由链表,来分配和释放元素所占的存储空间。假定一个槽位可以存储一个标志、一个元素加上一个或两个指针。所有的字典和自由链表操作均应具有 O(1)的期望运行时间。该自由链表需要是双向链表吗?或者,是不是单链表就足够了呢? 文心一言: 阅读全文
posted @ 2023-11-10 15:43 福大大架构师每日一题 阅读(57) 评论(0) 推荐(0) 编辑
摘要:三、用go语言,Marley 教授做了这样一个假设,即如果将链模式改动一下,使得每个链表都能保持已排好序的顺序,散列的性能就可以有较大的提高。Marley 教授的改动对成功查找、不成功查找、插入和删除操作的运行时间有何影响? 文心一言: Marley 教授的假设是关于调整链表(可能是一个散列链表)以 阅读全文
posted @ 2023-11-09 17:37 福大大架构师每日一题 阅读(36) 评论(0) 推荐(0) 编辑
摘要:2023-11-08:用go语言,字符串哈希原理和实现 比如p = 233, 也就是课上说的选择的质数进制 " 3 1 2 5 6 ..." 0 1 2 3 4 hash[0] = 3 * p的0次方 hash[1] = 3 * p的1次方 + 1 * p的0次方 hash[2] = 3 * p的2 阅读全文
posted @ 2023-11-08 20:15 福大大架构师每日一题 阅读(33) 评论(0) 推荐(0) 编辑
摘要:二、用go语言,对于一个用链接法解决冲突的散列表,说明将关键字 5,28,19,15,20,33,12,17,10 插入到该表中的过程。设该表中有 9 个槽位,并设其散列函数为 h(k)=k mod 9。 文心一言: 在这个问题中,我们使用 Go 语言来解决一个散列(Hash)表的问题,该问题需要我 阅读全文
posted @ 2023-11-07 13:50 福大大架构师每日一题 阅读(21) 评论(0) 推荐(0) 编辑
摘要:四、用go语言,我们希望在一个非常大的数组上,通过利用直接寻址的方式来实现一个字典。开始时该数组中可能包含一些无用信息,但要对整个数组进行初始化是不太实际的,因为该数组的规模太大。请给出在大数组上实现直接寻址字典的方案。每个存储对象占用 O(1)空间;SEARCH、INSERT和DELETE操作的时 阅读全文
posted @ 2023-11-06 17:14 福大大架构师每日一题 阅读(61) 评论(0) 推荐(0) 编辑
摘要:三、用go语言,试说明如何实现一个直接寻址表,表中各元素的关键字不必都不相同,且各元素可以有卫星数据。所有三种字典操作(INSERT、DELETE和SEARCH)的运行时间应为O(1)(不要忘记 DELETE 要处理的是被删除对象的指针变量,而不是关键字。) 文心一言,代码正常运行: 在 Go 语言 阅读全文
posted @ 2023-11-05 19:20 福大大架构师每日一题 阅读(44) 评论(0) 推荐(0) 编辑
摘要:2023-11-04:用go语言,如果n = 1,打印 1*** 如果n = 2,打印 1*** 3*** 2*** 如果n = 3,打印 1*** 3*** 2*** 4*** 5*** 6*** 如果n = 4,打印 1*** 3*** 2*** 4*** 5*** 6*** 10** 9*** 阅读全文
posted @ 2023-11-04 23:27 福大大架构师每日一题 阅读(15) 评论(0) 推荐(0) 编辑
摘要:二、用go语言,位向量(bit vector)是一个仅包含0和1的数组。长度为m的位向量所占空间要比包含m个指针的数组少得多。请说明如何用一个位向量来表示一个包含不同元素(无卫星数据)的动态集合。字典操作的运行时间应为 O(1)。 文心一言,代码正常运行: 在Go语言中,我们可以使用map[int] 阅读全文
posted @ 2023-11-03 16:22 福大大架构师每日一题 阅读(23) 评论(0) 推荐(0) 编辑
摘要:一、用go语言,假设一动态集合 S用一个长度为 m 的直接寻址表T来表示。请给出一个查找 S 中最大元素的过程。你所给的过程在最坏情况下的运行时间是多少? 文心一言,代码正常运行: 在这个问题中,我们需要实现一个查找动态集合 S 中最大元素的算法,该动态集合使用一个长度为 m 的直接寻址表 T 来表 阅读全文
posted @ 2023-11-02 17:14 福大大架构师每日一题 阅读(21) 评论(0) 推荐(0) 编辑
摘要:2023-11-01:用go语言,沿街有一排连续的房屋。每间房屋内都藏有一定的现金, 现在有一位小偷计划从这些房屋中窃取现金, 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋, 小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额, 给你一个整数数组 nums 表 阅读全文
posted @ 2023-11-01 17:27 福大大架构师每日一题 阅读(10) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示