01 2024 档案

摘要:2024-01-31:用go语言,机器人正在玩一个古老的基于DOS的游戏, 游戏中有N+1座建筑,从0到N编号,从左到右排列, 编号为0的建筑高度为0个单位,编号为i的建筑的高度为H(i)个单位, 起初, 机器人在编号为0的建筑处, 每一步,它跳到下一个(右边)建筑。假设机器人在第k个建筑,且它现在 阅读全文
posted @ 2024-01-31 14:56 福大大架构师每日一题 阅读(21) 评论(0) 推荐(0) 编辑
摘要:七、用go语言,说明如何在O(nlgn)时间内,利用顺序统计树对大小为n的数组中的逆序对(见思考题2-4)进行计数。 文心一言,代码不能运行: 逆序对是指在数组中,一个元素大于其后面的元素的情况。例如,在数组 [1, 3, 2, 4] 中,逆序对是 (3, 2) 和 (4, 2)。 顺序统计树(也称 阅读全文
posted @ 2024-01-30 09:56 福大大架构师每日一题 阅读(25) 评论(0) 推荐(0) 编辑
摘要:六、用go语言,在OS-SELECT或OS-RANK中,注意到无论什么时候引用结点的size属性都是为了计算一个秩。相应地,假设每个结点都存储它在以自己为根的子树中的秩。试说明在插入和删除时,如何维护这个信息。(注意,这两种操作都可能引起旋转。) 文心一言: 在OS-SELECT和OS-RANK中, 阅读全文
posted @ 2024-01-29 19:38 福大大架构师每日一题 阅读(14) 评论(0) 推荐(0) 编辑
摘要:五、用go语言,给定 n 个元素的顺序统计树中的一个元素 x 和一个自然数 i ,如何在O(lgn)的时间内确定工在该树线性序中的第 i 个后继? 文心一言,代码正常运行: 在顺序统计树(也称为平衡二叉搜索树)中,要找到一个元素 x 的第 i 个后继,我们可以使用以下步骤: 从根节点开始,使用递归或 阅读全文
posted @ 2024-01-28 10:26 福大大架构师每日一题 阅读(9) 评论(0) 推荐(0) 编辑
摘要:2024-01-27:用go语言,阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有N堆金币, 第i堆金币的总重量和总价值分别是m[i]、v[i], 阿里巴巴有一个承重量为T的背包,但并不一定有办法将全部的金币都装进去, 他想装走尽可能多价值的金币, 所有金币都可以随意分割,分割完的金币重量价值比(也就是 阅读全文
posted @ 2024-01-27 17:17 福大大架构师每日一题 阅读(58) 评论(0) 推荐(0) 编辑
摘要:四、用go语言,写出一个递归过程 OS-KEY-RANK(T,k),以一棵顺序统计树T和一个关键字k作为输入,要求返回 k 在由 T 表示的动态集合中的秩。假设 T 的所有关键字都不相同。 文心一言,代码正常运行: 以下是用 Go 语言编写的递归过程 OS-KEY-RANK(T, k),用于返回关键 阅读全文
posted @ 2024-01-26 10:08 福大大架构师每日一题 阅读(43) 评论(0) 推荐(0) 编辑
摘要:三、用go语言,写出OS-SELECT的非递归版本。 文心一言: 下面是使用Go语言编写的OS-SELECT的非递归版本: func OS_SELECT(T *Node, k int) *Node { // 找到最小秩的节点 minRankNode := findMinRankNode(T) // 阅读全文
posted @ 2024-01-25 10:27 福大大架构师每日一题 阅读(33) 评论(0) 推荐(0) 编辑
摘要:2024-01-24:用go语言,已知一个n*n的01矩阵, 只能通过通过行交换、或者列交换的方式调整矩阵, 判断这个矩阵的对角线是否能全为1,如果能返回true,不能返回false。 我们升级一下: 已知一个n*n的01矩阵, 只能通过通过行交换、或者列交换的方式调整矩阵, 判断这个矩阵的对角线是 阅读全文
posted @ 2024-01-24 10:05 福大大架构师每日一题 阅读(11) 评论(0) 推荐(0) 编辑
摘要:二、用go语言,对于图 14-1中的红黑树 T 和关键字 x.key 为35的结点x,说明执行 OS-RANK(T,x) 的过程。 文心一言: 在红黑树中,OS-RANK(T, x) 是一个操作,用于计算节点 x 在红黑树 T 中的秩。秩是一个节点的相对高度,对于根节点,其秩为 0。 首先,我们需要 阅读全文
posted @ 2024-01-23 14:11 福大大架构师每日一题 阅读(24) 评论(0) 推荐(0) 编辑
摘要:一、用go语言,对于图14-1中的红黑树 T,说明执行 OS-SELECT(T.root,10)的过程。 文心一言: 在红黑树中,OS-SELECT 是一个用于在树中查找特定键值的操作。给定一个红黑树的根节点和要查找的键值,该操作返回一个节点,该节点包含给定的键值,或者如果该键值不存在,则返回一个节 阅读全文
posted @ 2024-01-22 10:15 福大大架构师每日一题 阅读(98) 评论(0) 推荐(0) 编辑
摘要:七、用go语言,假设用 RB-INSERT 将一个结点 x 插入一棵红黑树,紧接着又用 RB-DELETE 将它从树中删除。结果的红黑树与初始的红黑树是否一样?证明你的答案。 文心一言: 首先,我们需要明确RB-INSERT和RB-DELETE的基本操作。 RB-INSERT的基本步骤如下: 将新节 阅读全文
posted @ 2024-01-21 18:25 福大大架构师每日一题 阅读(280) 评论(0) 推荐(0) 编辑
摘要:2024-01-20:用go语言,小扣在探索丛林的过程中,无意间发现了传说中"落寞的黄金之都", 而在这片建筑废墟的地带中,小扣使用探测仪监测到了存在某种带有「祝福」效果的力场, 经过不断的勘测记录,小扣将所有力场的分布都记录了下来, forceField[i] = [x,y,side] , 表示第 阅读全文
posted @ 2024-01-20 14:01 福大大架构师每日一题 阅读(13) 评论(0) 推荐(0) 编辑
摘要:六、用go语言,Skelton 和 Baron 教授担心在 RB-DELETE-FIXUP 的情况1开始时,结点 x.p 可能不是黑色的。如果这两位教授是对的,则第5~6行就是错的。证明:x.p 在情况1开始时必是黑色的,从而说明这两位教授没有担心的必要。 文心一言: 首先,我们需要理解RB-DEL 阅读全文
posted @ 2024-01-19 10:49 福大大架构师每日一题 阅读(20) 评论(0) 推荐(0) 编辑
摘要:四、用go语言,在 RB-DELETE-FIXUP 代码的哪些行中,可能会检查或修改哨兵 T.nil ? 文心一言: RB-DELETE-FIXUP 是红黑树中的一个操作,用于在删除一个节点后进行必要的调整以保持红黑树的性质。在这个过程中,可能会检查或修改哨兵节点 T.nil。 一般来说,RB-DE 阅读全文
posted @ 2024-01-18 16:10 福大大架构师每日一题 阅读(55) 评论(0) 推荐(0) 编辑
摘要:2024-01-17:用go语言,给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words = ["ab","cd","ef"], 那么 "abcdef" 阅读全文
posted @ 2024-01-17 20:27 福大大架构师每日一题 阅读(8) 评论(0) 推荐(0) 编辑
摘要:三、用go语言,在练习13.3-2 中,将关键字 41、38、31、12、19、8 连续插入一棵初始的空树中,从而得到一棵红黑树。请给出从该树中连续删除关键字 8、12、19、31、38、41 后的红黑树。 文心一言,代码不能运行: 为了解决这个问题,我们首先需要构建一棵红黑树,然后依次删除给定的关 阅读全文
posted @ 2024-01-16 15:01 福大大架构师每日一题 阅读(42) 评论(0) 推荐(0) 编辑
摘要:二、用go语言,在 RB-DELETE 中,如果 x 和 x.p 都是红色的,证明:可以通过调用 RB-DELETE-FIXUP(T,x)来恢复性质 4。 文心一言: 在红黑树中,性质4指的是:每个节点要么是红色,要么是黑色,并且根节点是黑色的。如果节点 x 和 x.p(x 的父节点)都是红色的,那 阅读全文
posted @ 2024-01-15 17:25 福大大架构师每日一题 阅读(5) 评论(0) 推荐(0) 编辑
摘要:一、用go语言,在执行 RB-DELETE-FIXUP 之后,证明:树根一定是黑色的。 文心一言: 在证明 RB-DELETE-FIXUP 之后,树根一定是黑色的的过程中,我们首先需要理解红黑树的性质。红黑树是一种自平衡二叉搜索树,它的每个节点都有一个颜色属性,可以是红色或黑色。红黑树的性质包括: 阅读全文
posted @ 2024-01-14 14:25 福大大架构师每日一题 阅读(17) 评论(0) 推荐(0) 编辑
摘要:2024-01-13:用go语言,现在有一个打怪类型的游戏,这个游戏是这样的,你有n个技能, 每一个技能会有一个伤害, 同时若怪物小于等于一定的血量,则该技能可能造成双倍伤害, 每一个技能最多只能释放一次,已知怪物有m点血量。 现在想问你最少用几个技能能消灭掉他(血量小于等于0)。 技能的数量是n, 阅读全文
posted @ 2024-01-13 15:37 福大大架构师每日一题 阅读(37) 评论(0) 推荐(0) 编辑
摘要:六、用go语言,说明如果红黑树的表示中不提供父指针,应当如何有效地实现 RB-INSERT。 文心一言: 红黑树是一种自平衡的二叉搜索树,其中每个节点都包含一个颜色属性(红色或黑色),并且满足以下性质: 节点是红色或黑色。 根节点是黑色。 所有叶子节点(NIL或空节点)都是黑色。 如果一个节点是红色 阅读全文
posted @ 2024-01-12 21:17 福大大架构师每日一题 阅读(200) 评论(0) 推荐(1) 编辑
摘要:五、用go语言,考虑一棵用 RB-INSERT 插人 n 个结点而成的红黑树。证明:如果 n>1,则该树至少有一个红结点。 文心一言: 要证明这个问题,我们首先需要理解红黑树的性质。红黑树是一种自平衡二叉搜索树,它在插入和删除操作中维护一些属性,以保证搜索、插入和删除操作的时间复杂性为O(log n 阅读全文
posted @ 2024-01-11 17:35 福大大架构师每日一题 阅读(45) 评论(0) 推荐(1) 编辑
摘要:2024-01-10:用go语言,给你一个下标从 0 开始的二维整数数组 pairs 其中 pairs[i] = [starti, endi] 如果 pairs 的一个重新排列 满足对每一个下标 i ( 1 <= i < pairs.length ) 都有 endi-1 == starti , 那么 阅读全文
posted @ 2024-01-10 22:06 福大大架构师每日一题 阅读(10) 评论(0) 推荐(0) 编辑
摘要:四、用go语言,Teach 教授担心 RB-INSERT-FIXUP可能将 T.nil.color 设为 RED,这时,当 z 为根时第1行的测试就不会让循环终止。通过讨论 RB-INSERT-FIXUP永远不会将 T.nil.color 设置为 RED,来说明这位教授的担心是没有必要的。 文心一言 阅读全文
posted @ 2024-01-09 20:37 福大大架构师每日一题 阅读(156) 评论(0) 推荐(0) 编辑
摘要:三、用go语言,假设图13-5 和图13-6 中子α、β、γ、δ和ε的黑高都是k。给每张图中的每个结点标上黑高,以验证图中所示的转换能保持性质 5。 文心一言: 在Go语言中,你可以通过以下步骤来为图13-5和图13-6中的每个节点分配黑高,以验证性质5。首先,我们需要定义一个结构体来表示图中的节点 阅读全文
posted @ 2024-01-08 10:10 福大大架构师每日一题 阅读(56) 评论(0) 推荐(0) 编辑
摘要:二、用go语言,将关键字41、38、31、12、19、8连续地插入一棵初始为空的红黑树之后,试画出该结果树。 文心一言: 首先,我们需要了解红黑树的性质。红黑树是一种自平衡二叉查找树,其中每个节点要么是红色,要么是黑色,且满足以下性质: 每个节点要么是红色,要么是黑色。 根节点是黑色。 所有叶子节点 阅读全文
posted @ 2024-01-07 11:02 福大大架构师每日一题 阅读(16) 评论(0) 推荐(0) 编辑
摘要:2024-01-06:用go语言,在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧 在桥上有一些石子,青蛙很讨厌踩在这些石子上 由于桥的长度和青蛙一次跳过的距离都是正整数 我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0...L 其中L是桥的长度,坐标为 0 的点表示桥的起点, 阅读全文
posted @ 2024-01-06 21:01 福大大架构师每日一题 阅读(58) 评论(0) 推荐(0) 编辑
摘要:一、用go语言,在 RB-INSERT 的第 16 行,将新插人的结点 z 着为红色。注意到,如果将 z 着为黑色,则红黑树的性质4就不会被破坏。那么为什么不选择将 z 着为黑色呢? 文心一言: 在红黑树中,节点被着色为红色或黑色,以满足红黑树的五个性质。性质4指出,每个节点要么是红色,要么是黑色, 阅读全文
posted @ 2024-01-05 10:46 福大大架构师每日一题 阅读(40) 评论(0) 推荐(0) 编辑
摘要:四、用go语言,证明:任何一棵含n个结点的二叉搜索树可以通过 O(n)次旋转,转变为其他任何一棵含n个结点的二叉搜索树。(提示:先证明至多n-1次右旋足以将树转变为一条右侧伸展的链。) 文心一言: 这是一个有趣的问题,我们可以使用递归和数学归纳法来证明这个结论。 首先,让我们定义一个函数rotate 阅读全文
posted @ 2024-01-04 10:11 福大大架构师每日一题 阅读(32) 评论(0) 推荐(0) 编辑
摘要:2024-01-03:用go语言,给你两个长度为 n 下标从 0 开始的整数数组 cost 和 time, 分别表示给 n 堵不同的墙刷油漆需要的开销和时间。你有两名油漆匠, 一位需要 付费 的油漆匠,刷第 i 堵墙需要花费 time[i] 单位的时间, 开销为 cost[i] 单位的钱。 一位 免 阅读全文
posted @ 2024-01-03 13:28 福大大架构师每日一题 阅读(10) 评论(0) 推荐(0) 编辑
摘要:三、用go语言,设在图 13-2 左边一棵树中,a、b和c 分别为子树a、β和γ中的任意结点。当结点 x 左旋之后,a、b和c 的深度会如何变化? 文心一言: 在二叉树中,左旋操作是改变节点的子节点顺序。原本的子节点β变为新的左子节点,原本的左子节点γ变为新的右子节点。 对于给定的节点a、b和c,我 阅读全文
posted @ 2024-01-02 10:00 福大大架构师每日一题 阅读(57) 评论(0) 推荐(0) 编辑
摘要:二、用go语言,证明:在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1种可能的旋转。 文心一言: 要证明在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1 种可能的旋转,我们可以按照以下步骤逐步推导: 二叉搜索树的性质:在二叉搜索树中,任意一个结点的左子树上的所有结点值都小于该结点值,而右子树 阅读全文
posted @ 2024-01-01 10:55 福大大架构师每日一题 阅读(15) 评论(0) 推荐(0) 编辑

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