2022-01-13:K 个不同整数的子数组。 给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续、不一定不同的子数组为好子数组。...(例如,1,2,3,1,2 中有 3 个不同的整数:1,2,以及 3。) 返回 A 中好子数组的数目。 来自力扣992。 答案2022-01-13: 两个窗口的滑动窗口。k-1窗口,k窗口。
2022-02-21:不含连续1的非负整数。 给定一个正整数 n ,返回范围在 0, n 都非负整数中,其二进制表示不包含 连续的 1 的个数。...输入: n = 5 输出: 5 解释: 下面是带有相应二进制表示的非负整数<= 5: 0 : 0 1 : 1 2 : 10 3 : 11 4 : 100 5 : 101 其中,只有整数3违反规则(有两个连续的...1 <= n <= 10的9次方。 力扣600。 答案2022-02-21: 动态规划。 根据规律,跟斐波那契数列有关,但未找到这种解法。 代码用golang编写。...= 0 { break } } // for循环出来之后,i表示,n最高位的1,在哪? // 从这个位置,往右边低位上走!
2021-03-23:给定一个正整数组成的无序数组arr,给定一个正整数值K,找到arr的所有子数组里,哪个子数组的累加和等于K并且是长度最大的。返回其长度。...小于等于K时,右指针右移,窗口和的值累加,等于时收集答案;大于K时,左指针右移,窗口和的值减少。
2022-10-11:一个整数区间 a, b 代表着从 a 到 b 的所有连续整数,包括 a 和 b。...给你一组整数区间intervals,请找到一个最小的集合 S,使得 S 里的元素与区间intervals中的每一个整数区间都至少有2个元素相交。输出这个最小集合S的大小。...第一个整数区间,先选靠后的两个数字。java,go,rust运行情况见截图。java和go运行最快,go运行速度落后了。内存占用上,rust占用内存最少,go次之,java最高。代码用rust编写。...{ let mut intervals = intervals; // O(N*logN) // 区间根据,结束位置谁小,谁在前 // 结束位置一样的...pre = pos; ans += 1; } // 不管情况2)还是情况1)都需要这一句
2022-10-11:一个整数区间 [a, b] ( a < b ) 代表着从 a 到 b 的所有连续整数,包括 a 和 b。...给你一组整数区间intervals,请找到一个最小的集合 S, 使得 S 里的元素与区间intervals中的每一个整数区间都至少有2个元素相交。 输出这个最小集合S的大小。...第一个整数区间,先选靠后的两个数字。 java,go,rust运行情况见截图。java和go运行最快,go运行速度落后了。内存占用上,rust占用内存最少,go次之,java最高。...let mut intervals = intervals; // O(N*logN) // 区间根据,结束位置谁小,谁在前 // 结束位置一样的...pre = pos; ans += 1; } // 不管情况2)还是情况1)都需要这一句
合作: root121toor@gmail.com ~关注我 带你看更多精品技术和面试必备 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组...[4,-1,2,1] 的和最大,为 6。...在进行下一次循环 class Solution { public int maxSubArray(int[] nums) { int maxNum=nums[0];
2023-05-16:给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。请你找到这个数组里第 k 个缺失的正整数。输入:arr = 2,3,4,7,11, k = 5。输出:9。...答案2023-05-16:大体步骤如下:1.初始化左指针l为0,右指针r为数组长度减一,定义中间指针m和find(找到第k个正整数前的下标位置),并将find初始化为数组长度。...4.如果当前位置arrm减去(m+1)小于k,说明第k个缺失的正整数在当前位置右侧,把左指针l设为m+1,继续二分查找右半部分。...5.查找结束后,如果find等于0,说明要找的是第一个缺失的正整数,返回0即可;否则,找到第k个正整数前的一个位置,把这个位置上的元素赋值给preValue,计算从当前位置到第k个正整数的缺失数量under...时间复杂度为O(logn),其中n是数组的长度。因为代码采用了二分查找的算法,每次查找可以将搜索范围缩小一半,所以时间复杂度为O(logn)。
2022-05-06:给你一个整数数组 arr,请你将该数组分隔为长度最多为 k 的一些(连续)子数组。分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值。...返回将数组分隔变换后能够得到的元素最大和。 注意,原数组和分隔后的数组对应顺序应当一致,也就是说,你只能选择分隔数组的位置而不能调整数组中的顺序。...解释: 因为 k=3 可以分隔成 [1,15,7] [9] [2,5,10],结果为 [15,15,15,9,10,10,10],和为 84,是该数组所有分隔变换后元素总和最大的。...若是分隔成 [1] [15,7,9] [2,5,10],结果就是 [1, 15, 15, 15, 10, 10, 10] 但这种分隔方式的元素总和(76)小于上一种。 力扣1043....分隔数组以得到最大和。 答案2022-05-06: 从左往右的尝试模型。0到i记录dp[i]。 假设k=3,分如下三种情况: 1.i单个一组dp[i]=[i]+dp[i-1]。 2.i和i-1一组。
2022-06-14:数组的最大与和。给你一个长度为 n 的整数数组 nums 和一个整数 numSlots ,满足2 * numSlots >= n 。...你需要把所有 n 个整数分到这些篮子中,且每个篮子 至多 有 2 个整数。一种分配方案的 与和 定义为每个数与它所在篮子编号的 按位与运算 结果之和。...[]; // 降低的预期! // 公主上,打一个,降低预期的值,只维持最小! let mut slack: Vec = vec!...// x,王子碰没碰过// y, 公主碰没碰过// lx,所有王子的预期// ly, 所有公主的预期// match,所有公主,之前的分配,之前的爷们!...// slack,连过,但没允许的公主,最小下降的幅度// map,报价,所有王子对公主的报价// 返回,from号王子,不降预期能不能配成!
2022-04-13:给你一个下标从 0 开始包含 n 个正整数的数组 arr ,和一个正整数 k 。...,相同的数组 arr 对于 k = 1 不是 K 递增的(因为 arr0 > arr1), 对于 k = 3 也不是 K 递增的(因为 arr0 > arr3 )。...每一次 操作 中,你可以选择一个下标 i 并将 arri 改成任意 正整数。 请你返回对于给定的 k ,使数组变成 K 递增的 最少操作次数 。 力扣2111。...答案2022-04-13: 拆分成k个数组,分别求最长递增子序列,然后做差,最后求和。 代码用golang编写。....] // 辅助数组help,为了求最长递增子序列,需要开辟的空间,具体看体系学习班 // 上面的序列,要改几个数,能都有序!
2022-04-13:给你一个下标从 0 开始包含 n 个正整数的数组 arr ,和一个正整数 k 。...arr[2] <= arr[4] (5 <= 6) arr[3] <= arr[5] (2 <= 2) 但是,相同的数组 arr 对于 k = 1 不是 K 递增的(因为 arr[0] > arr[1...每一次 操作 中,你可以选择一个下标 i 并将 arr[i] 改成任意 正整数。 请你返回对于给定的 k ,使数组变成 K 递增的 最少操作次数 。 力扣2111。...答案2022-04-13: 拆分成k个数组,分别求最长递增子序列,然后做差,最后求和。 代码用golang编写。....] // 辅助数组help,为了求最长递增子序列,需要开辟的空间,具体看体系学习班 // 上面的序列,要改几个数,能都有序!
给你一个正整数数组nums, 同时给你一个长度为 m 的整数数组 queries。 第 i 个查询中,你需要将 nums 中所有元素变成 queries[i] 。...你可以执行以下操作 任意 次: 将数组里一个元素 增大 或者 减小 1 。...请你返回一个长度为 m 的数组 answer , 其中 answer[i]是将 nums 中所有元素变成 queries[i] 的 最少 操作次数。 注意,每次查询后,数组变回最开始的值。...函数接受两个参数:nums(正整数数组)和 queries(整数数组)。...2.获取 nums 数组的长度,对 nums 进行排序,并创建一个长度为 n+1 的 sum 数组,用于保存从 nums 累加得到的前缀和。 3.创建一个空的 ans 数组,用于存储结果。
#include<stdio.h> #include<string.h> #include<math.h> /***将十进制转换成二进制,采用递归方法***/ ...
2022-04-27:Alice 有一个下标从 0 开始的数组 arr ,由 n 个正整数组成。...她会选择一个任意的 正整数 k 并按下述方式创建两个下标从 0 开始的新整数数组 lower 和 higher : 对每个满足 0 <= i < n 的下标 i ,lower[i] = arr[i] -...给你一个由 2n 个整数组成的整数数组 nums ,其中 恰好 n 个整数出现在 lower ,剩下的出现在 higher ,还原并返回 原数组 arr 。...如果出现答案不唯一的情况,返回 任一 有效数组。 注意:生成的测试用例保证存在 至少一个 有效数组 arr 。...组合 lower 和 higher 得到 [2,6,10,4,8,12] ,这是 nums 的一个排列。 另一个有效的数组是 arr = [5,7,9] 且 k = 3 。
2021-08-11:按要求补齐数组。给定一个已排序的正整数数组 nums,和一个正整数 n 。...从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。...福大大 答案2021-08-11: 用尽可能大的数字扩充range范围。尽可能大的数字是range+1。 时间复杂度:O(数组长度+log(n))。 空间复杂度:O(1)。 代码用golang编写。...func minPatches(arr []int, aim int) int { patches := 0 // 缺多少个数字 range2 := 0 // 已经完成了1 ~ range的目标...{ return patches + 1 } range2 += range2 + 1 // range + 1 是缺的数字
2021-10-19:缺失的区间。给定一个排序的整数数组 nums ,其中元素的范围在 闭区间 lower, upper 当中,返回不包含在数组中的缺失区间。力扣163。...福大大 答案2021-10-19: 一次遍历。遍历的时候,修改左边界。 时间复杂度:O(N)。 空间复杂度:O(1)。 代码用golang编写。...<= upper { ans = append(ans, miss(lower, upper)) } return ans } // 生成"lower->upper"的字符串
2023-07-15:给你一个 非递减 的正整数数组 nums 和整数 K, 判断该数组是否可以被分成一个或几个 长度至少 为 K 的 不相交的递增子序列。...2.从索引 1 开始遍历数组 nums: • 如果 nums[i-1] 不等于 nums[i],说明遇到了一个新的递增序列,更新 maxCnt 为之前的计数 cnt 和 maxCnt 中的较大值,并将...3.遍历结束后,再次更新 maxCnt 为最后一个递增序列的计数 cnt 和 maxCnt 中的较大值。...5.在 main 函数中,定义数组 nums 和整数 k。 6.调用函数 canDivideIntoSubsequences(nums, k) 并将结果赋给变量 result。...时间复杂度: 遍历数组 nums 的时间复杂度为 O(n),其中 n 是数组 nums 的长度。 因此,整个算法的时间复杂度为 O(n)。
2022-04-23:给定一个长度为4的整数数组 cards 。你有 4 张卡片,每张卡片上都包含一个范围在 1,9 的数字。...你须遵守以下规则: 除法运算符 '/' 表示实数除法,而不是整数除法。 例如, 4 /(1 - 2 / 3)= 4 /(1 / 3)= 12 。 每个运算都在两个数字之间。...特别是,不能使用 “-” 作为一元运算符。 例如,如果 cards =1,1,1,1 ,则表达式 “-1 -1 -1 -1” 是 不允许 的。...你不能把数字串在一起 例如,如果 cards =1,2,1,2 ,则表达式 “12 + 12” 无效。 如果可以得到这样的表达式,其计算结果为 24 ,则返回 true ,否则返回 false 。...可利用原数组空间。 代码用golang编写。
By CaesarChang 合作: root121toor@gmail.com ~关注我 带你看更多精品知识 见注释 简单动态规划问题 将前面的数之和做一个更新
/*********************************************************************************** 将16进制的字符串转换成10进制...1.如果存在0x 必需将 0x 剔除 2.该程序假定是在32位机器上,故16进制为FFFF,不足4个字符串,修正一下,前面空格填0 3.也可以是用strtol 直接完成字符串和16进制的转换 ****
领取专属 10元无门槛券
手把手带您无忧上云