随笔分类 - Leetcode
1
摘要:###题目 给你一个整数数组 nums 和一个整数 k 。区间 [left, right](left ⇐ right)的 异或结果 是对下标位于 left 和 right(包括 left 和 right )之间所有元素进行 XOR 运算的结果:nums[left] XOR nums[
阅读全文
摘要:给定一个字符串s,另一个长度为2的字符串t,可以最多修改s x次,求s的子序列为t的最大次数 代码如下: #include<iostream> #include<cstdio> #include<vector> #include<map> #include<cstring> #include<str
阅读全文
摘要:###题意 给你一个字符串 s (下标从 0 开始)。你需要对 s 执行以下操作直到它变为一个有序字符串: 找到 最大下标 i ,使得 1 ⇐ i < s.length 且 s[i] < s[i - 1] 。 找到 最大下标 j ,使得 i ⇐ j < s.length 且对于所有在闭区间 [i,
阅读全文
摘要:###题目 你是一位施工队的工长,根据设计师的要求准备为一套设计风格独特的房子进行室内装修。 房子的客厅大小为 n x m,为保持极简的风格,需要使用尽可能少的 正方形 瓷砖来铺盖地面。 假设正方形瓷砖的规格不限,边长都是整数。 请你帮设计师计算一下,最少需要用到多少块方形瓷砖? ###题解 htt
阅读全文
摘要:###并行课程 给你一个整数 n 表示某所大学里课程的数目,编号为 1 到 n ,数组 dependencies 中, dependencies[i] = [xi, yi] 表示一个先修课的关系,也就是课程 xi 必须在课程 yi 之前上。同时你还有一个整数 k 。 在一个学期中,你 最多 可以同时
阅读全文
摘要:###格雷码 格雷码是一个二进制数系,其中两个相邻数的二进制位只有一位不同。举个例子,3位二进制数的格雷码序列为 000,001,011,010,110,111,101,100 记G(0)表示第1个格雷码,则有 int G(n) { return n^(n>>1); } 求某个格雷码是第几个 int
阅读全文
摘要:###两个正序数组的中位数 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。 请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 ####解法一 双指针 对于奇数个数,中位数
阅读全文
摘要:###数据流的中位数 问题定义: 不断有数字过来,问在当前所有数字中的中位数是多少 ####优先队列--堆 我们可以用一个大根堆和一个小根堆分别维护一个有序数,使得小根堆的所有数字都大于大根堆,这就要求小根堆的堆顶要大于等于大根堆的堆顶。 为了求得中位数,我们需要小根堆和大根堆的数字个数相等或相差一
阅读全文
摘要:####题意 行程长度编码 是一种常用的字符串压缩方法,它将连续的相同字符(重复 2 次或更多次)替换为字符和表示字符计数的数字(行程长度)。例如,用此方法压缩字符串 "aabccc" ,将 "aa" 替换为 "a2" ,"ccc" 替换为` "c3" 。因此压缩后的字符串变为 "a2bc3" 。
阅读全文
摘要:####题意 区间和的个数 给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper。 区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。 说明: 最直观的算法复杂度是 O(n2
阅读全文
摘要:####题意 给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 ####题解 可以将数组nums中的数组先离散化、去重。用树状数组维护这些数字出现的次数,区间[0,l]
阅读全文
摘要:####题目大意 寻找数组arr的区间l和r,使[l,r]区间内的数&后与target的差值的绝对值最小 ####思路 有一个很重要的推论就是&运算具有单调递减性,也就是ask(a,r+1)<=ask(l,r)<=ask(l+1,r)。因此我们可以通过滑动数组,当前区间结果>target时,r++;
阅读全文
摘要:###最多 K 次交换相邻数位后得到的最小整数 题目大意: 给你一个字符串 num 和一个整数 k 。其中,num 表示一个很大的整数,字符串中的每个字符依次对应整数上的各个 数位 。 你可以交换这个整数相邻数位的数字 最多 k 次。 请你返回你能得到的最小整数,并以字符串形式返回。 ####题解
阅读全文
摘要:石子游戏一 亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。 游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。 亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止
阅读全文
摘要:给你一个 m * n 的矩阵 seats 表示教室中的座位分布。如果座位是坏的(不可用),就用 '#' 表示;否则,用 '.' 表示。 学生可以看到左侧、右侧、左上、右上这四个方向上紧邻他的学生的答卷,但是看不到直接坐在他前面或者后面的学生的答卷。请你计算并返回该考场可以容纳的一起参加考试且无法作弊
阅读全文
摘要:leetcode 5298 给你一个方程,左边用 words 表示,右边用 result 表示。 你需要根据以下规则检查方程是否可解: 每个字符都会被解码成一位数字(0 - 9)。每对不同的字符必须映射到不同的数字。每个 words[i] 和 result 都会被解码成一个没有前导零的数字。左侧数字
阅读全文
摘要:给你一个 m * n 的网格,其中每个单元格不是 0(空)就是 1(障碍物)。每一步,您都可以在空白单元格中上、下、左、右移动。 如果您 最多 可以消除 k 个障碍物,请找出从左上角 (0, 0) 到右下角 (m-1, n-1) 的最短路径,并返回通过该路径所需的步数。如果找不到这样的路径,则返回
阅读全文
摘要:有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头。 每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆石头的总数。 找出把所有石头合并成一堆的最低成本。如果不可能,返回 -1 。 提示: 1 <= stones.length <= 30 2 <=
阅读全文
摘要:给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。 返回仅包含 1 的最长(连续)子数组的长度。 输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2 输出:6 解释: [1,1,1,0,0,1,1,1,1,1,1] 粗体数字从 0 翻转到
阅读全文
摘要:汽车从起点出发驶向目的地,该目的地位于出发位置东面 target 英里处。 沿途有加油站,每个 station[i] 代表一个加油站,它位于出发位置东面 station[i][0] 英里处,并且有 station[i][1] 升汽油。 假设汽车油箱的容量是无限的,其中最初有 startFuel 升燃
阅读全文
1

浙公网安备 33010602011771号