
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
给定一个 N×M的矩阵 A,请你统计有多少个子矩阵 (最小 1×11×1,最大 N×M) 满足子矩阵中所有数的和不超过给定的整数 K?

2.dfs(int x,int father)更新f[][](表示节点 i 的第2^j个祖先节点)、d[](深度)1.n台电脑用n-1条网线相连,任意两个节点之间有且仅有一条路径(拆分成各自到公共祖先节点的路径——lca);若不相等,则从大到小,如果f[][]不等,则更新两点,lca=f[x][0]朴素求法的改进版(朴素是一步一步跳,倍增是用f[][]优化,每次向上都是以其父节点为目标)(1)先将

1.a 操作:+1;b 操作:-1,对一个数位同时使用a和b,相当于不使用,故对一个数单独考虑使用a 或使用 b。思路:题目的意思,要让一个数最大,用贪心去考虑,从高位开始,对其进行a / b操作,使其变为9,可让该数最大。(1)当前数位的数是 x ,贪心一下,将其变为9,需要t = 9 - x次 a 操作。(1)贪心,将x变为9,对于b操作而言,只要在为0时,才能变成9,故需要的次数。(2)不够

4409. 砍竹子这天,小明在砍竹子,他面前有 n棵竹子排成一排,一开始第 i棵竹子的高度为 ℎi。他觉得一棵一棵砍太慢了,决定使用魔法来砍竹子。魔法可以对连续的一段相同高度的竹子使用,假设这一段竹子的高度为 H,那么使用一次魔法可以把这一段竹子的高度都变为,其中 表示对 x 向下取整。小明想知道他最少使用多少次魔法可以让所有的竹子的高度都变为 1。

在上面的公式中,随着指针的移动,距离必然越来越小,那么我们想要容纳的水量最多,就得想办法提高指针的高度,于是我们在移动双指针时,就应该移动高度较小的那个指针。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。头尾指针,一个公式:容纳的水量 = 两个指针的距离 * min(两个指针的高度)轴共同构成的容器可以容纳最多的水。找
计数,互为字母异位词的两个字符串包含的字母相同,故可以将每个字符串中出现的字母次数以字符串的形式表示,作为哈希表的Key值。由于只包含小写字母,故用大小为26的数组即可。对字符串数组中的每个字符串排序,以这个排序作为Key值,当两个字符串的排序相同时,存进同一个列表。给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。在 strs 中没有字符串可以通过重新排列来形成。是
先排序,避免重复处理元素;再遍历三元组中的第一个值,第二个和第三个值使用双指针寻找。使用双指针,一头一尾,如果此时寻找的第二个值与前一个第二个值相同,则跳过;如果此时第一个、第二个值和第三个值相加大于0,则移动尾指针;如果此时头尾指针相遇,则直接跳出循环(找完了!如果此时相加等于0,则存入答案输出。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答
3.用differ记录s和p的差值(记录count中所有非0数的数量),当differ = 0 时,意味着此时窗口中的字母和p是字母异位词,记录答案。起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是
非常好,那么我们就可以在遍历数组计算每个下标前缀和的时候,计算target = pre[j] - k,如果已经记录的前缀和pre[i] == target,就说明对于pre[j]而言,找到了一个子数组[i....j-1]如果已知每个下标的前缀和,那么[i....j-1]这个子数组的和为k,则意味着pre[j] - pre[i] == k,左右变换一下可以得到:pre[i] = pre[j] - k
3.遍历前缀和,用min_pre记录最小的前缀和的值,用当前的前缀和 - min_pre,用max()更新答案,用min()更新min_pre。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。再次重申:数组无序——前缀和;数组有序——双指针、滑动窗口。连续子数组 [4,-1,2,1] 的和最大,为 6。2.要求最大的子数组和:即求最大的前缀和之差。是数组中的一个连续部








