2026-01-23:奇数和与偶数和的最大公约数。用go语言,给定一个整数 n,记 A 为前 n 项奇数序列(1、3、5、…)的和,B 为前 n 项偶数序列(2、4、6、…)的和。...计算奇数和与偶数和 首先,你需要分别计算前n个奇数的和(A)与前n个偶数的和(B)。 1. 计算奇数和 (A): • 奇数的序列是:1, 3, 5, ..., 第n项。...这是一个首项为1,公差为2的等差数列。 • 等差数列的求和公式为:( S = \frac{n}{2} \times (首项 + 末项) )。 • 第n个奇数的值可以用公式 ( 2n-1 ) 表示。...计算偶数和 (B): • 偶数的序列是:2, 4, 6, ..., 第n项。这是一个首项为2,公差为2的等差数列。 • 第n个偶数的值可以用公式 ( 2n ) 表示。...利用数学性质:连续的两个整数 ( n ) 和 ( n+1 ) 是互质的(它们的最大公约数是1),因为任何大于1的整数都无法同时整除两个连续的整数 。 4.
2022-12-22:给定一个数字n,代表数组的长度,给定一个数字m,代表数组每个位置都可以在1~m之间选择数字,所有长度为n的数组中,最长递增子序列长度为3的数组,叫做达标数组。返回达标数组的数量。...1 n 的时候没有取模的逻辑,因为非重点。来自微众银行。...// n : 一共的长度!// m : 每一位,都可以在1~m中随意选择数字// 返回值:i..... 有几个合法的数组!...{ ans += zuo(i + 1, f, s, cur, n, m); } } return ans;}// 正式方法// 需要看最长递增子序列!...// 尤其是理解ends数组的意义!fn number2(n: i32, m: i32) -> i32 { //repeat(vec!
面试题时间 用go语言,给定一个包含 n 个非空字符串的数组 arr,你的任务是找出一个长度为 n 的字符串数组 answer。...满足以下条件: 对于每个索引 i,answer[i] 是 arr[i] 的最短子字符串,并且这个子字符串不是 arr 中其他字符串的子字符串。 如果有多个这样的子字符串,则选择字典序最小的一个。...答:Go 的 sync.WaitGroup 是等待一组协程结束,sync.WaitGroup 只有 3 个方法,Add()是添加计数,Done()减去一个计数,Wait()阻塞直到所有的任务完成。...3、Go 语言中不同的类型如何比较是否相等?...uintptr 是指针运算的工具,但是它不能持有指针对象(意思就是它跟指针对象不能互相转换),unsafe.Pointer 是指针对象进行运算(也就是 uintptr)的桥梁。
2025-08-31:可行数组的数目。用go语言,给定一个长度为 n 的初始数组(记作原数组)和一个包含 n 个闭区间的列表(第 i 个区间为 [ui, vi])。...要求统计所有长度为 n 的候选数组,使得: • 候选数组在相邻元素之间的差值序列与原数组完全相同(即对每个 i=1..n-1,候选[i]-候选[i-1] 等于原数组对应的相邻差)。...关键观察 • 候选数组的第一个元素(记为 x0)一旦确定,整个候选数组就被唯一确定(因为相邻差是固定的)。...., L_{n-1}) • 整体上界 R = min(R_0, R_1, ..., R_{n-1}) 4. 计算整数解的数量:交集 [L, R] 中整数的个数即为候选数组的数量(因为 x0 是整数)。...检查交集是否非空: • 如果 low > high,返回 0。 • 否则,返回 high - low + 1。
给你一个二进制字符串 s 和一个整数 k 。 如果所有长度为 k 的二进制字符串都是 s 的子串,请返回 True ,否则请返回 False 。...示例 1: 输入:s = "00110110", k = 2 输出:true 解释:长度为 2 的二进制串包括 "00","01","10" 和 "11"。...它们分别是 s 中下标为 0,1,3,2 开始的长度为 2 的子串。...示例 2: 输入:s = "00110", k = 2 输出:true 示例 3: 输入:s = "0110", k = 1 输出:true 解释:长度为 1 的二进制串包括 "0" 和 "1"...示例 4: 输入:s = "0110", k = 2 输出:false 解释:长度为 2 的二进制串 "00" 没有出现在 s 中。
2025-03-06:给定一个长度为 n 的整数组 nums,其中 n 是偶数,同时还有一个整数 k。 你可以进行一些操作,每次可以把数组中的任何一个元素替换为 0 到 k 之间的任意整数。...用go语言,给定一个长度为 n 的整数组 nums,其中 n 是偶数,同时还有一个整数 k。 你可以进行一些操作,每次可以把数组中的任何一个元素替换为 0 到 k 之间的任意整数。...2 n == nums.length <= 100000。 n 是偶数。 0 的修改次数,使得数组满足条件。 6.时间复杂度为 O(n),空间复杂度为 O(n)。...综上所述,总的时间复杂度为 O(n),总的额外空间复杂度为 O(n)。这个解决方案通过操作数组元素的方法来满足题目要求,并找出最少需要修改的次数。
2023-11-22:用go语言,给你一个长度为 n 下标从 0 开始的整数数组 nums。 它包含 1 到 n 的所有数字,请你返回上升四元组的数目。...如果一个四元组 (i, j, k, l) 满足以下条件,我们称它是上升的: 0 n 且 nums[i] < nums[k] < nums[j] < nums[l]...大体过程如下: 算法1:countQuadruplets1 1.初始化变量:n为数组长度,ans为结果计数器,dp为动态规划数组。...算法2:countQuadruplets2 1.初始化变量:n为数组长度,ans为结果计数器,dp为动态规划数组。 2.遍历数组,从第二个元素开始(下标为1): a.初始化计数器cnt为0。...总的时间复杂度:两种算法的时间复杂度都是O(n^2),因为需要两层循环遍历数组。 总的额外空间复杂度:两种算法的空间复杂度都是O(n),因为需要使用一个长度为n的动态规划数组dp。
要实现这个需求,你可以遍历数组,检查每个元素的entityName是否为"asdf",如果是则将其移到数组的第一个位置。...以下是具体的实现代码:function moveAsdfToFirst(arr) { // 遍历数组查找目标元素 for (let i = 0; i 检查元素是否存在entityName且值为"asdf" if (arr[i] && arr[i].entityName === "asdf") {...for循环遍历数组,检查每个元素的entityName属性当找到entityName为"asdf"的元素时:使用splice方法从原位置移除该元素使用unshift方法将其添加到数组的第一个位置使用break...退出循环(如果需要移动所有符合条件的元素,可以去掉break)最后返回处理后的数组如果需要移动所有entityName为"asdf"的元素到前面,可以稍作修改,收集所有符合条件的元素后再重新组合数组。
用go语言,给定一个长度为 n 的字符串 s 和一个整数 k,其中 n 是 k 的倍数。我们的任务是把字符串 s 转换为一个长度为 n / k 的新字符串 result。...首先,将字符串 s 切分为 n / k 个子字符串,每个子字符串的长度为 k。接着,初始化 result 为一个空字符串。...输入参数: • 输入的字符串 s 是一个长度为 n 的小写字母字符串。 • 整数 k 表示我们将字符串分割成子字符串的长度。 • 注意:n 必须是 k 的倍数,这样可以确保字符串可以被均匀切分。...处理每一个子字符串: • 对于每个长度为 k 的子字符串,执行以下步骤: • 计算子字符串中每个字符的哈希值。哈希值定义为字符在字母表中的位置。...• 因此,整体的时间复杂度是O(n),因为每个字符都只需被处理一次。 空间复杂度分析 • 在空间方面,我们主要使用一个 result 字符串来存储最终结果,其长度为 n / k。
2024-09-07:用go语言,给定一个包含 n 个非空字符串的数组 arr,你的任务是找出一个长度为 n 的字符串数组 answer。...满足以下条件: 对于每个索引 i,answer[i] 是 arr[i] 的最短子字符串,并且这个子字符串不是 arr 中其他字符串的子字符串。 如果有多个这样的子字符串,则选择字典序最小的一个。...如果不存在这样的子字符串,则对应位置的 answer[i] 应为一个空字符串。 你需要编写一个算法来实现以上要求,并返回生成的字符串数组 answer。...解释:求解过程如下: 对于字符串 "cab" ,最短没有在其他字符串中出现过的子字符串是 "ca" 或者 "ab" ,我们选择字典序更小的子字符串,也就是 "ab" 。...对于字符串 "ad" ,不存在没有在其他字符串中出现过的子字符串。 对于字符串 "bad" ,最短没有在其他字符串中出现过的子字符串是 "ba" 。
2026-02-14:含上限元素的子序列和。用go语言,给你一个长度为 n 的整数数组 nums 和一个正整数 k。...对于每个整数 x(1 ≤ x ≤ n),先把数组中大于 x 的数都缩小到 x,得到一个新的数组。然后在这个新数组中,是否能够取出一个非空的、保持原来相对顺序的子序列,使其元素之和恰好等于 k?...将对每个 x(按 x=1 到 n 顺序)的可行性用一个长度为 n 的布尔数组 answer 表示,其中 answer[i](下标从 0 开始)表示当 x = i+1 时是否存在这样的子序列。...问题理解与转化 • 输入:整数数组 nums(长度 n,每个元素 ≤ n)和正整数 k(≤ 4000) • 对于每个 x(1 ≤ x ≤ n),需要判断是否存在一个非空子序列(保持原顺序),该子序列中所有元素都...n) • 维护一个二进制数 f,表示当前能够组成的子序列和集合 • f 的第 i 位为 1 表示可以组成和为 i 的子序列 3.
已知两个长度分别为m和n的升序链表,若将它们合并为长度为m+n的一个降序链表,则最坏情况下的时间复杂度是()。...首先明确,题目让我们求复杂度,这里显然不是讨论移动次数,因为不论什么情况,移动次数都是(M+N),不需要讨论 所以这里求的是合并过程中的比较次数 最好的情况,很容易想,就是长度较短的数列中最小的数还比另一个数列最大的数字大...,如(7 8 9和 1 2 3 4 ),这种情况需要比较min(m,n)次就好了,复杂度为O(min(m,n))。...但是注意,最后一次移动是一定不需要比较的,因为剩最后一个元素的时候,必然另一个数列已经结束了,所以不用比。...)咯 可是选项没有,哈哈,别急,比较次数是 (m+n-1) 次,m和n的次幂都是1,所以复杂度也是一次就行了,那么到底是O(n)还是O(m)呢,肯定选最大的那个啊,因为是最坏情况,故复杂度为O(Max(
给定一个长度为N的正数数组,还有一个正数K, 返回有多少子序列的最大公约数为K。 结果可能很大,对1000000007取模。...答案2023-08-22: 算法过程分步描述如下: 1.初始化数组 dp、cnt 和 pow2,长度为 MAXN,全部初始值为 0。 2.读取数组长度 N 和正数数组 arr。...初始化 counts 为 0,用于统计具有因子 i 的元素个数。 b. 遍历 cnt 数组,从 i 开始,以 i 为步长,累加 cnt[j] mod mod 到 counts。 c....从 2*i 开始,以 i 为步长,累减 dp[j] mod mod 到 dp[i]。 7.输出 dp[1],即表示具有最大公约数为 K 的子序列个数。...该算法的时间复杂度为 O(N * log(MAXN)),空间复杂度为 O(MAXN)。
2024-12-14:K 周期字符串需要的最少操作次数。用go语言,给定一个长度为n的字符串 word 和一个整数k,k是n的因数。...每次操作可以选择两个下标i和j,使得i和j都可以被k整除,然后用从j开始的长度为k的子串替换从i开始的长度为k的子串。要使得word成为一个K周期字符串,需要进行最少的操作次数。...一个K周期字符串是指存在一个长度为k的字符串s,通过多次连接s可以得到word。比如,如果word == "ababab",那么当s = "ab"时,word是一个2周期字符串。...大体步骤如下: 1.初始化变量 n 为字符串 word 的长度,并设定变量 res 初始值为最大整数。 2.创建一个空的计数映射 count,用于存储不同子串的出现次数。...3.遍历字符串 word 中长度为 k 的子串,依次检查每个子串。 4.在循环中,统计每个长度为 k 的子串出现的次数,更新 res 为使得 word 成为 K 周期字符串所需的最少操作次数。
2023-07-02:给定一个1~N的排列,每次将相邻两数相加,可以得到新的序列,长度是N-1 再对新的序列,每次将相邻两数相加,可以得到新的序列,长度是N-2 这样下去可以最终只剩一个数字 比如 :...认为 1, 10, 2...的字典序更小 如果给定的n和sum,有答案,返回一个N长度的答案数组 如果给定的n和sum,无答案,返回一个1长度的数组{ -1 } 输入 : N = 4, sum = 16...2.定义一个变量status,其初始值为((1 n + 1)) - 1) ^ 1。 3.如果n小于1或大于10,或者sum大于sums[n],则返回数组[-1]。...5.如果ans的值为-1,说明无法找到合适的序列,返回数组[-1]。 6.创建一个长度为n的答案数组ans,并初始化index为0,rest为sum。...总的时间复杂度:O(2^N * sum),其中N为输入的n,sum为输入的sum。 总的空间复杂度:O(2^N * sum),包括二维动态数组dp的空间。
2023-03-02:给定一个数组arr,长度为n,任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的!求所有可能的合法子序列中,最大中位数是多少?...中位数的定义为上中位数,1, 2, 3, 4的上中位数是2,1, 2, 3, 4, 5的上中位数是3,2 n 是实习题,实际上有难度。方法一:要i还是不要i,递归或者动态规划。方法二:以结果为导向,二分法。时间复杂度:O(N*logN)。空间复杂度:O(N)。...1和-1,// 你可以从左往右选择数字组成子序列,// 但是要求任何两个相邻的数,至少要选1个// 请返回子序列的最大累加和// arr : 数组// i : 当前来到i位置// pre : 前一个数字...,至少选一个,来生成序列// 所有这样的序列中,// 到底有没有一个序列,其中>= median的数字,能达到一半以上fn max_sum1( arr: &mut Vec, help
2023-03-02:给定一个数组arr,长度为n, 任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的! 求所有可能的合法子序列中,最大中位数是多少?...中位数的定义为上中位数, [1, 2, 3, 4]的上中位数是2, [1, 2, 3, 4, 5]的上中位数是3, 2 n <= 10^5, 1 <= arr[i] <= 10^9。...答案2023-03-02: 这道题看起来是实习题,实际上有难度。 方法一:要i还是不要i,递归或者动态规划。 方法二:以结果为导向,二分法。 时间复杂度:O(N*logN)。 空间复杂度:O(N)。...前一个数字(i-1位置),当初选了没有 // 如果pre == 0, 表示i-1位置的数字,当初没有选 // 如果pre == 1, 表示i-1位置的数字,当初选了 // 返回arr[i...]的子序列...,至少选一个,来生成序列 // 所有这样的序列中, // 到底有没有一个序列,其中>= median的数字,能达到一半以上 fn max_sum1( arr: &mut Vec,
2022-08-06:给定一个数组arr,长度为N,arr中所有的值都在1~K范围上,你可以删除数字,目的是让arr的最长递增子序列长度小于K。返回至少删除几个数字能达到目的。...N N*K)。额外空间复杂度:O(N*K)。rust和typescript的代码都有。...// len长度了!len = 3 : 1 2 3// arr[index....]是能够决定的,之前的,已经不能再决定了// 返回:让最终保留的数字,凑不足k长度的情况下,至少要删几个!...// len长度了!len = 3 : 1 2 3// arr[index....]是能够决定的,之前的,已经不能再决定了// 返回:让最终保留的数字,凑不足k长度的情况下,至少要删几个!...(arr: number[], k: number): number { var n: number = arr.length; var dp: number[][] = new Array(n);
2025-10-25:找到频率最高的元音和辅音。用go语言,给你一个只包含小写英文字母的字符串 s。...输出为 2 + 4 = 6。 题目来自力扣3541。 1. 统计字符频率 首先,遍历字符串 s,用一个 map[byte]int 来记录每个字符出现的次数。...然后遍历 26 个小写字母 'a' 到 'z': • 对于每个字母,从 mp 中取出它的出现次数 count(如果没出现过就是 0)。...• 判断该字母是否为元音(a, e, i, o, u 之一): • 如果是元音,则更新 vowel = max(vowel, count)。...时间复杂度 • 遍历字符串一次,长度 n,O(n)。 • 遍历 26 个字母,固定 O(26) 即 O(1)。 总时间复杂度:O(n)。 5.
2023-05-22:给定一个长度为 n 的字符串 s ,其中 si 是:D 意味着减少;I 意味着增加。...有效排列 是对有 n + 1 个在 0, n 范围内的整数的一个排列 perm ,使得对所有的 i:如果 si == 'D',那么 permi > permi+1,以及;如果 si == 'I',那么...时间复杂度:O(n!),其中 n 为数字序列的长度。空间复杂度:O(n),递归过程中需要 O(n) 的栈空间。...2.初始化 dpn 为 1,表示在最后一个位置填入 less 的数量只有一种。3.从倒数第二个位置开始往前遍历,根据当前位置 si-1 的值,分别枚举下一个数字的大小。...具体来说,如果当前的 sum 大于 mod,则减去一个 mod;如果当前的 sum 小于 0,则加上一个 mod。6.最终答案为 dp0。时间复杂度:O(n),只需填充一个一维数组即可。