2022-10-05:在一个 n x n 的整数矩阵 grid 中,每一个方格的值 gridi 表示位置 (i, j) 的平台高度。当开始下雨时,在时间为 t 时,水池中的水位为 t 。...你可以从一个平台游向四周相邻的任意一个平台,但是前提是此时水位必须同时淹没这两个平台。假定你可以瞬间移动无限距离,也就是默认在方格内部游动是不耗时的。当然,在你游泳的时候你必须待在坐标方格里面。...你从坐标方格的左上平台 (0,0) 出发。返回 你到达坐标方格的右下平台 (n-1, n-1) 所需的最少时间 。...时间复杂度:O(N*2logN)。空间复杂度:O(N**2)。代码用rust编写。...let mut visited: Vec> = repeat(repeat(false).take(m as usize).collect()) .take(n
JAVA11 求最小公倍数 描述 编写一个方法,该方法的返回值是两个不大于 100 的正整数的最小公倍数 输入描述 两个 int 类型变量作为方法的参数 输出描述 int 类型的变量,值为两个数的最小公倍数...此外,如果两个数互质,那么这两个数的最小公倍数就是它们的积。然后在这个区间中循环,用区间中的数去除以 m 和 n,如果存在一个数能同时整除 m 和 n,那么这个数就是它俩的最小公倍数。...: 12.500 250.000 备注: 结果保留三位小数,保留方式已经写在预设方法备注中 解答 要经过 n 此落地,所以需要循环 n 次,在每次循环的时候,需要将下落的高度和回弹的高度相加。...以及个数 count,当遇到输入的值是负数时,就终止循环,然后计算出其平均值 sum / count。.../ 2 之间的数,如果存在一个数能被 number 整除,那么就说明这个数不是质数。
小红想知道,最终的连续子数组最大和最大是多少? 输入描述 第一行输入一个正整数t,代表询问次数。 对于每次询问,输入两行: 第一行输入两个整数n和x。代表数组的大小,以及小红可以修改成的元素。...输入描述 第一行输入三个正整数n,m,k,分别代表初始帖子列表长度,精华区间的数量,以及运营同学准备截取的长度。 接下来的m行,每行输入两个正整数li,ri,代表第i个左闭右开区间。...1 ≤ k ≤ n ≤ 1000000000 1 ≤ m ≤ 100000 0 ≤ li < ri ≤ n 保证任意两个区间是不重叠的。 输出描述 一个正整数,代表截取获得的最多的精华帖子数量。...= max(ans, pre_sum_list[j]-pre_sum_list[i]) # 如果 li+k 位于区间 [lj,rj)中,说明当选择li作为左端点时 # 精华帖子的数量为...请你输出数组元素之和的最小值。 输入描述 两个正整数n和k 1 ≤ n, k ≤ 10^5 输出描述 一个正整数,代表数组元素之和的最小值。
长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。...然后从这个「起始位置」开始,然 后寻找⼀段最短的区间,使得这段区间的和「⼤于等于」⽬标值。 将所有元素作为起始位置所得的结果中,找到「最⼩值」即可。...[end]; // 将当前位置加上 if (sum >= target) // 当这段区间内的和满⾜条件时 {...2.手撕图解 3.代码实现 INT_MAX是C语言中的一个宏定义,表示整型数据类型int的最大值。...在32位系统中,它的值为2147483647;在64位系统中,它的值为9223372036854775807。这个值可以用来进行数据类型转换、判断数据是否越界等操作。
1、HashMap 在没有其它附加条件的情况下,读者第一时间会想到通过 HashMap 来记录出现过的数字,从而找到重复数: 图片 上述实现代码的时间复杂度和空间复杂度都为 O(n),如果只允许使用...长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。...有了这一关键信息,对于任一中间数,都可以将其与当前搜索区间的最后一个元素相比较,从而知道当前中间数在哪一个递增序列上,而所求的最小值存在于第二个递增序列的头部,那么不断将搜索区间往这一方向收缩,即可得到最小值...寻找旋转排序数组中的最小值】的进阶题型。 在 153 中,只需要将搜索区间不断向第二个递增区间收缩,即可得到最小值。...回顾 33 题的解法,在寻找下一个搜索区间时,通过该搜索区间的头部元素和尾部元素的比较得出当前搜索区间是否横跨两个递增序列。
1、HashMap 在没有其它附加条件的情况下,读者第一时间会想到通过 HashMap 来记录出现过的数字,从而找到重复数:图片 上述实现代码的时间复杂度和空间复杂度都为 O(n),如果只允许使用...长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。...有了这一关键信息,对于任一中间数,都可以将其与当前搜索区间的最后一个元素相比较,从而知道当前中间数在哪一个递增序列上,而所求的最小值存在于第二个递增序列的头部,那么不断将搜索区间往这一方向收缩,即可得到最小值...寻找旋转排序数组中的最小值】的进阶题型。 在 153 中,只需要将搜索区间不断向第二个递增区间收缩,即可得到最小值。...回顾 33 题的解法,在寻找下一个搜索区间时,通过该搜索区间的头部元素和尾部元素的比较得出当前搜索区间是否横跨两个递增序列。
输入描述 第一行输入一个正整数t,代表询问次数。 对于每次询问,输入两行: 第一行输入两个整数n和x。代表数组的大小,以及小红可以修改成的元素。...输入描述 第一行输入三个正整数n,m,k,分别代表初始帖子列表长度,精华区间的数量,以及运营同学准备截取的长度。 接下来的m行,每行输入两个正整数li,ri,代表第i个左闭右开区间。...1 ≤ k ≤ n ≤ 1000000000 1 ≤ m ≤ 100000 0 ≤ li < ri ≤ n 保证任意两个区间是不重叠的。 输出描述 一个正整数,代表截取获得的最多的精华帖子数量。...= max(ans, pre_sum_list[j]-pre_sum_list[i]) # 如果 li+k 位于区间 [lj,rj)中,说明当选择li作为左端点时 # 精华帖子的数量为...请你输出数组元素之和的最小值。 输入描述 两个正整数n和k 1 ≤ n, k ≤ 10^5 输出描述 一个正整数,代表数组元素之和的最小值。
题目 给出一个长度为 n 的数组 a,你需要在这个数组中找到一个长度至少为 m 的区间,使得这个区间内的数字的和尽可能小。...输入描述: 第一行包含一个正整数 n,m,表示数组的大小和所选区间的最小长度。...输出描述: 输出仅包含一个正整数,表示所选区间的和。...(n+1); for(int i = 1; i <= n; i++) { cin >> presum[i]; presum[i] += presum[i-...{ a = max(a, presum[i]);//左端点的最大值 minsum = min(minsum, presum[j]-a);//间距满足要求 }
网易 牛牛找工作 为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。...在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。 输入描述: 每个输入包含一个测试用例。...输入描述: 输入的第一行包含一个正整数t(1 <= t <= 1000), 表示测试用例数 接下来每两行一个测试数据, 第一行一个正整数n(1 <= n <= 1000),表示道路的长度。...输入描述: 每个输入包含一个测试用例。 每个测试用例的第一行包含一个正整数,表示转方向的次数N(N<=1000)。...输入描述: 输入包括两个正整数n,k(1 <= n <= 10^5, 0 <= k <= n - 1)。 输出描述: 对于每个测试用例, 输出一个正整数表示可能的数对数量。
题目描述 给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。...输入描述: 输入为两行内容,第一行是正整数number,1 ≤ length(number) ≤ 50000。第二行是希望去掉的数字数量cnt 1 ≤ cnt < length(number)。...示例1 输入 325 1 输出 35 看到这个题之后,作为一个刚学了一个月C++的菜鸡,我最初的想法非常简单粗暴,就是想办法找到最小的那个数,然后把它删除,这样就能保留最大的数。...比如当输入"123450 1"时,我们预期的答案应该是23450,但是算法是通过找出最小的数字所在位置,再把它删除来获取最大值的。算法得出结果是12345,显然算法还存在缺陷。...比如当输入"543210 1"时,Index一直等于零,所以在删除元素的时候,最高位会被直接删除,从而得到结果43210,这与我们预期的结果54321不同。 这可咋办呢?
当两头牛的吃草区间存在交集时(包括端点),这两头牛不能被安排在同一个畜栏吃草。 求需要的最小畜栏数目和每头牛对应的畜栏方案。 输入格式 第 1 行:输入一个整数 N 。...且前 m 个组中最小的右端点大于等于第 i 个区间的左端点,所以前 m 个组里最后一个区间一定都包含第 i 个区间的左端点,所以我们就找到了 m+1 个区间存在交集,所以至少需要...每个小岛都位于海洋一侧的某个点上。 雷达装置均位于海岸线上,且雷达的监测范围为 d ,当小岛与某雷达的距离不超过 d 时,该小岛可以被雷达覆盖。...,所以我们选择的点也是排好序的 只有在当前区间和上一个点所对应的区间是没有交集时,我们才会选择一个新点,所以所有选出的点所对应的区间两两之间没有交集 找到了 m 个两两之间没有交集的区间,因此我们至少需要选...那么不妨用 带权并查集 来维护每个等效权值点 点权:在根节点维护这个集合的“等效权值”以及集合的大小 边权:用边权维护在这个集合中该节点的次序 这样最后整个树中只会有一个并查集,因此每个点到根的路径长,
股票买卖 II 给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。...为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。 输入格式 第一行输入整数 N。 第二行 N 个整数 A_1 ∼ A_N 。 输出格式 输出一个整数,表示距离之和的最小值。...当仓库向左移动的话,p会减少x,但是q会增加n−x,所以说当为仓库中位数的时候,p+q最小。 每次只关注局部最优解,即可推出全局最优解。...每人每次传递一个糖果代价为 1。 求使所有人获得均等糖果的最小代价。 输入格式 第一行输入一个正整数 n,表示小朋友的个数。...每个小岛都位于海洋一侧的某个点上。 雷达装置均位于海岸线上,且雷达的监测范围为 d,当小岛与某雷达的距离不超过 d 时,该小岛可以被雷达覆盖。
二分基础概念 二分 的基础用法是在 单调序列 或 单调函数 中进行查找。 因此当问题的答案具有 单调性 时,就可以通过 二分把求解化为判定。...不过大多情况下,在我们无法确定函数是 单峰 还是 多峰 时,优先推荐用 爬山法 来找极值 二分模板 整数域上二分 在单调递增序列 a 中查找 \ge x 的数中最小的一个(即 x 或...这样问题的值域就具有一种特殊的单调性 —— 在 S 的一侧合法、在 S 的另一侧不合法,就像一个在 (-\infty, S] 上值为 1 ,在 (S,+\infty) 上值为 0...N, M ,数据用空格隔开 接下来 N 行,每行输出一个正整数 A_i ,表示第 i 本书的厚度 输出格式 输出最小整数 T ,其中 T 表示厚度之和最大的一组的厚度 数据范围 1...[mid, r + 1] 之间找到插入位置,用数学归纳法同理易证 这样每次将查找区间缩小一倍,根据基于比较的排序的下界,可以在 n\log n 的时间内完成排序 class Solution
首先,如果整个字符串中的abc数量不足k个,那么肯定无解。假设存在一个一般解,取s[:l]以及s[r:]之后满足题意。我们很容易找到当r=n时,也就是右侧不取,全部从左侧获取时的l。...之后考虑将l往左移动,来寻找更优的情况。当l往左移动时,区间s[l:]内的元素减少,为了能够满足题意,我们必须要将r也往左移动,这样才能补充字符,从而才有可能满足题意。...礼盒的 甜蜜度 是礼盒中任意两种糖果 价格 绝对差的最小值。 返回礼盒的 最大 甜蜜度。...去重和排序之后,我们要做的就是找到一个最大的值m,使得我们可以找到k个数,它们所有相邻两数的差值大于等于m。两两差值的最小值一定出现在相邻的元素上,所以我们只需要考虑元素相邻的差值即可。...由于答案可能很大,请返回对 10^9 + 7 取余 后的结果。 如果在两个分区中,存在某个元素 nums[i] 被分在不同的组中,则认为这两个分区不同。
言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。...要求程序首先输入一个整数N(N<100)表示后面数据行数,接着读入N行数据,每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000),每个整数代表一个ID号。...例如,用户输入:100 程序输出:11 再例如,用户输入:105 程序输出:6 题目分析 题目代码 第十题:连号区间数(29分) 题目描述 小明这些天一直在思考这样一个奇怪而有趣的问题:在1...当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。...输入格式: 第一行是一个正整数N(1<=N<=50000),表示全排列的规模; 第二行是N个不同的数字Pi(1<=Pi<=N),表示这N个数字的某一全排列。
目录 一、 35.搜索插入排序 二、 209.长度最小的子数列 三、 27.移除元素 四、 59.移除元素 ---- 一、 35.搜索插入排序 题目 给定一个排序数组和一个目标值,在数组中找到目标值...如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。...题目 给定一个含有 n 个正整数的数组和一个正整数 target 。...找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。...后来发现,这就是双指针解法,大概就是通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。
/*问题描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?...这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。...当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。...输入格式 第一行是一个正整数N (1 <= N <= 50000), 表示全排列的规模。 第二行是N个不同的数字Pi(1 <= Pi <= N), 表示这N个数字的某一全排列。...if(a[j]<min){min=a[j];} if(a[j]>max){max=a[j];} if(max-min==j-i) sum++; //如果区间最大值与最小值之差等于当前区间数
题目描述 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口 k 内的数字。滑动窗口每次只向右移动一位。 返回滑动窗口最大值。...双端队列,在队列中存储元素在数组中的位置, 并且维持队列的严格递减,,也就说维持队首元素是 最大的 ,当遍历到一个新元素时, 如果队列里有比当前元素小的,就将其移除队列,以保证队列的递减。...题目描述 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。...未查找到,则将该元素插入到record中,而后查看record的长度是否为k + 1 如果此时record的长度是否为k + 1,则删减record的元素,该元素的值为nums[i - k] 如果遍历完整个数组...题目描述 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。
领取专属 10元无门槛券
手把手带您无忧上云