08 2023 档案
摘要:# 一、用go语言,参照图8-2 的方法,说明 COUNTING-SORT 在数组 A=(6,0,2,0,1,3,4,6,1,3,2)上的操作过程。 ## 文心一言: Counting Sort 是一种非比较型整数排序算法,适用于一定范围内的整数排序。它的基本思想是,对每一个输入元素 x,确定小于
阅读全文
2023-08-30:用go语言编写。两个魔法卷轴问题。 给定一个数组arr,其中可能有正、负、0, 一个魔法卷轴可以把arr中连续的一段全变成0,你希望数组整体的累加和尽可能大。 你有两个魔法卷轴,
摘要:2023-08-30:用go语言编写。两个魔法卷轴问题。 给定一个数组arr,其中可能有正、负、0, 一个魔法卷轴可以把arr中连续的一段全变成0,你希望数组整体的累加和尽可能大。 你有两个魔法卷轴,请返回数组尽可能大的累加和。 1 = 0; i-- { right[i] = max(arr[i]+
阅读全文
摘要:# 四、用go语言,假设现有一个包含n个元素的待排序序列。该序列由 n/k 个子序列组成,每个子序列包含k个元素。一个给定子序列中的每个元素都小于其后继子序列中的所有元素,且大于其前驱子序列中的每个元素。因此,对于这个长度为 n 的序列的排序转化为对 n/k个序列中的k个元素的排序。试证明: 这个排
阅读全文
2023-08-28:用go语言编写。给你一个正整数数组nums, 同时给你一个长度为 m 的整数数组 queries。 第 i 个查询中,你需要将 nums 中所有元素变成 queries[i] 。
摘要:2023-08-28:用go语言编写。给你一个正整数数组nums, 同时给你一个长度为 m 的整数数组 queries。 第 i 个查询中,你需要将 nums 中所有元素变成 queries[i] 。你可以执行以下操作 任意 次: 将数组里一个元素 增大 或者 减小 1 。请你返回一个长度为 m 的
阅读全文
摘要:# 一、如果用go语言,在一棵比较排序算法的决策树中,一个叶结点可能的最小深度是多少? ## 文心一言: 在一个排序决策树(如二叉搜索树)中,每个叶节点的最小深度等于输入数据中最大元素与最小元素之间的位距离。这是因为在最坏的情况下,每个比较都需要将最大元素向最小元素的路径移动,因此叶节点的最小深度就
阅读全文
2023-08-26:请用go语言编写。开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A、B、C、D四个球队,且每个村民只会喜欢其中的一支球队, 但是说
摘要:2023-08-26:请用go语言编写。开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A、B、C、D四个球队,且每个村民只会喜欢其中的一支球队, 但是说谎者会不告知真实喜好,而且会说是另外三支球队的支持者。 访问所有的村民之后,得到的访谈结果如下 :
阅读全文
摘要:# 六、如果用go语言,考虑对 PARTITION 过程做这样的修改:从数组 A 中随机选出三个元素,并用这三个元素的中位数(即这三个元素按大小排在中间的值)对数组进行划分。求以a 的函数形式表示的、最坏划分比例为 a:(1-a)的近似概率,其中 0 pivot { greater = append
阅读全文
2023-08-24:请用go语言编写。给定一个长度为n的数组arr, 现在你有一次机会, 将其中连续的K个数全修改成任意一个值, 请你计算如何修改可以使修改后的数 列的最长不下降子序列最长。 请输出
摘要:2023-08-24:请用go语言编写。给定一个长度为n的数组arr, 现在你有一次机会, 将其中连续的K个数全修改成任意一个值, 请你计算如何修改可以使修改后的数 列的最长不下降子序列最长。 请输出这个最长的长度。 最长不下降子序列:子序列中的每个数不小于在它之前的数。 1 = n { fmt.P
阅读全文
摘要:# 五、如果用go语言,当输入数据已经“几乎有序”时,插入排序速度很快。在实际应用中,我们可以利用这一特点来提高快速排序的速度。当对一个长度小于 k 的子数组调用快速排序时,让它不做任何排序就返回。当上层的快速排序调用返回后,对整个数组运行插人排序来完成排序过程。试证明:这一排序算法的期望时间复杂度
阅读全文
2023-08-22:请用go语言编写。给定一个长度为N的正数数组,还有一个正数K, 返回有多少子序列的最大公约数为K。 结果可能很大,对1000000007取模。 1 <= N <= 10^5, 1
摘要:2023-08-22:请用go语言编写。给定一个长度为N的正数数组,还有一个正数K, 返回有多少子序列的最大公约数为K。 结果可能很大,对1000000007取模。 1 = 1; i-- { counts := int64(0) for j := i; j #include using namesp
阅读全文
摘要:# 四、请用go语言,证明:RANDOMIZED-QUICKSORT 期望运行时间是 Ω(nlgn)。 ## 文心一言: 首先,为了证明RANDOMIZED-QUICKSORT的期望运行时间是Ω(nlg n),我们需要证明在最坏的情况下,该算法的运行时间是O(nlg n)。然后,我们需要证明在最坏的
阅读全文
摘要:2023-08-20:用go语言写算法。给定一个由'W'、'A'、'S'、'D'四种字符组成的字符串,长度一定是4的倍数, 你可以把任意连续的一段子串,变成'W'、'A'、'S'、'D'组成的随意状态, 目的是让4种字符词频一样。 返回需要修改的最短子串长度。 完美走位问题。 输入:s = "QQQ
阅读全文
摘要:# 二、如果用go语言,证明:在最好情况下,快速排序的运行时间为 Ω(nlgn)。 ## 文心一言: 在最好情况下,快速排序的运行时间为Ω(nlgn)的证明如下: 快速排序是一种分治算法,它将一个数组分成两个子数组,然后对这两个子数组分别进行排序。在最好情况下,每次划分都能将数组等分,即每次划分后得
阅读全文
2023-08-18:用go写算法。你会得到一个字符串 text, 你应该把它分成 k 个子字符串 (subtext1, subtext2,…, subtextk)。 要求满足: subtexti 是
摘要:2023-08-18:用go写算法。你会得到一个字符串 text, 你应该把它分成 k 个子字符串 (subtext1, subtext2,…, subtextk)。 要求满足: subtexti 是 非空 字符串, 所有子字符串的连接等于 text , ( 即subtext1 + subtext2
阅读全文
摘要:# 二、如果用go语言,在 RANDOMIZED-QUICKSORT 的运行过程中,在最坏情况下,随机数生成器 RANDOM 被调用了多少次?在最好情况下呢?以θ符号的形式给出你的答案? ## 文心一言: 在 RANDOMIZED-QUICKSORT 的运行过程中,最坏情况下,随机数生成器 RAND
阅读全文
摘要:2023-08-16:用go写算法。一个坐标可以从 -infinity 延伸到 +infinity 的 无限大的 棋盘上, 你的 骑士 驻扎在坐标为 [0, 0] 的方格里。 骑士的走法和中国象棋中的马相似,走 “日” 字: 即先向左(或右)走 1 格,再向上(或下)走 2 格, 或先向左(或右)走
阅读全文
摘要:# 一、如果用go语言,为什么我们分析随机化算法的期望运行时间,而不是其最坏运行时间呢? ## 文心一言: 在分析算法的性能时,期望运行时间是一个重要的指标,它描述了算法在平均情况下的表现。期望运行时间考虑了所有可能的情况,包括输入数据的分布和随机性等因素。 对于随机化算法,最坏情况下的运行时间可能
阅读全文
摘要:2023-08-14:用go语言写算法。给出两个长度相同的字符串 str1 和 str2, 请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化 后变成字符串 str2, 每一次转化时,你可以将 str1 中出现的 所有 相同字母变成其他 任何 小写英文字母, 只有在字符串 str1 能够通
阅读全文
摘要:# 四、如果用go语言,银行一般会按照交易时间来记录某一账户的交易情况。但是,很多人却喜欢收到的银行对账单是按照支票号码的顺序来排列的。这是因为,人们通常都是按照支票号码的顺序来开出支票的,而商人也通常都是根据支票编号的顺序兑付支票。这一问题是将按交易时间排序的序列转换成按支票号排序的序列,它实质上
阅读全文
2023-08-12:用go语言写算法。实验室需要配制一种溶液,现在研究员面前有n种该物质的溶液, 每一种有无限多瓶,第i种的溶液体积为v[i],里面含有w[i]单位的该物质, 研究员每次可以选择一瓶
摘要:2023-08-12:用go语言写算法。实验室需要配制一种溶液,现在研究员面前有n种该物质的溶液, 每一种有无限多瓶,第i种的溶液体积为v[i],里面含有w[i]单位的该物质, 研究员每次可以选择一瓶溶液, 将其倒入另外一瓶(假设瓶子的容量无限),即可以看作将两个瓶子内的溶液合并, 此时合并的溶液体
阅读全文
摘要:# 二、如果用go语言,当数组A的所有元素都具有相同值时,QUICKSORT的时间复杂度是什么? ## 文心一言: 在Go语言中,对一个所有元素都相等的数组进行快速排序(QuickSort)的时间复杂度是O(n log n)。 快速排序是一种分而治之的排序算法,它将一个数组分成两个子数组,然后对这两
阅读全文
2023-08-10:景区里有m个项目,也就是项目数组为int[][] game,这是一个m*2的二维数组 景区的第i个项目有如下两个参数: game[i] = { Ki, Bi } Ki一定是负数,
摘要:2023-08-10:景区里有m个项目,也就是项目数组为int[][] game,这是一个m*2的二维数组 景区的第i个项目有如下两个参数: game[i] = { Ki, Bi } Ki一定是负数,Bi一定是正数 举个例子 : Ki = -2, Bi = 10 如果只有1个人买票,单张门票的价格为
阅读全文
摘要:# 四、如何修改 QUICKSORT,使得它能够以非递增序进行排序? ## 文心一言: 快速排序(Quicksort)是一种常用的排序算法,基于分治策略进行设计。默认情况下,快速排序会以递增序进行排序。若想修改快速排序以实现非递增排序,我们需要调整比较和交换的逻辑。 以下是修改后的非递增快速排序的
阅读全文
2023-08-08:给你一棵 n 个节点的树(连通无向无环的图) 节点编号从 0 到 n - 1 且恰好有 n - 1 条边 给你一个长度为 n 下标从 0 开始的整数数组 vals 分别表示每个节
摘要:2023-08-08:给你一棵 n 个节点的树(连通无向无环的图) 节点编号从 0 到 n - 1 且恰好有 n - 1 条边 给你一个长度为 n 下标从 0 开始的整数数组 vals 分别表示每个节点的值 同时给你一个二维整数数组 edges 其中 edges[i] = [ai, bi] 表示节点
阅读全文
摘要:# 三、请简要地证明:在规模为 n 的子数组上,PARTITION 的时间复杂度为 Θ(n)。 ## 文心一言: 首先,我们需要明确PARTITION函数的具体定义。PARTITION函数通常用于快速排序算法中,它将一个数组分为两个子数组,使得一个子数组的所有元素都小于另一个子数组的所有元素。 PA
阅读全文
2023-08-06:小青蛙住在一条河边, 它想到河对岸的学校去学习 小青蛙打算经过河里 的石头跳到对岸 河里的石头排成了一条直线, 小青蛙每次跳跃必须落在一块石头或者岸上 给定一个长度为n的数组ar
摘要:2023-08-06:小青蛙住在一条河边, 它想到河对岸的学校去学习 小青蛙打算经过河里 的石头跳到对岸 河里的石头排成了一条直线, 小青蛙每次跳跃必须落在一块石头或者岸上 给定一个长度为n的数组arr,表示每块儿石头的高度数值 每块石头有一个高度, 每次小青蛙从一块石头起跳 这块石头的高度就会下降
阅读全文
摘要:# 参照图 7-1的方法,说明 PARTITION在数组 A=(13,19,9,5,12,8,7,4,21,2,6,11)上的操作过程。 ## 文心一言: PARTITION 是一种常见的快速排序算法,其目的是将数组分成两个部分,使得其中一个部分的所有元素都小于另一个部分的所有元素。在这个过程中,最
阅读全文
摘要:2023-08-04:村里面一共有 n 栋房子 我们希望通过建造水井和铺设管道来为所有房子供水。 对于每个房子 i,我们有两种可选的供水方案: 一种是直接在房子内建造水井 成本为 wells[i - 1] (注意 -1 ,因为 索引从0开始 ) 另一种是从另一口井铺设管道引水 数组 pipes 给出
阅读全文
摘要:# 九、请设计一个时间复杂度为 (n lgk)的算法,它能够将 k 个有序链表合并为一个有序链表,这里 n 是所有输入链表包含的总的元素个数。(提示:使用最小堆来完成 k 路归并。 ## 文心一言: 要设计一个时间复杂度为 O(n log k) 的算法,将 k 个有序链表合并为一个有序链表,可以使用
阅读全文
2023-08-02:给定一棵树,一共有n个点, 每个点上没有值,请把1~n这些数字,不重复的分配到二叉树上, 做到 : 奇数层节点的值总和 与 偶数层节点的值总和 相差不超过1。 返回奇数层节点分配
摘要:2023-08-02:给定一棵树,一共有n个点, 每个点上没有值,请把1~n这些数字,不重复的分配到二叉树上, 做到 : 奇数层节点的值总和 与 偶数层节点的值总和 相差不超过1。 返回奇数层节点分配值的一个方案。 2 sumMinK+k*rangeVal { return nil } add :=
阅读全文
摘要:# 八、HEAP-DELETE(A,i)操作能够将结点 i 从堆 A 中删除。对于一个包含 n个元素的堆,请设计一个能够在 O(lgn)时间内完成的 HEAP-DELETE 操作。 ## 文心一言: 要在 O(log n) 时间内完成 HEAP-DELETE 操作,可以使用以下方法: 1.首先找到要
阅读全文