摘要:
###一. [区间合并、插入、重叠数](https://www.cnblogs.com/929code/p/16369464.html) ###二. [区间内满足条件的点对、区间和、偏序关系数(树状数组和前缀和)](https://www.cnblogs.com/929code/p/17366099 阅读全文
摘要:
所以矩形左下角为(0,0),右上角为(x,y) 给你一个二维整数数组 rectangles 和 二维整数数组 points 求每个点占据的矩形数目 ###1. 暴力 遍历点然后遍历矩形 class Solution { public: vector<int> countRectangles(vect 阅读全文
摘要:
1. 将整数转化为负二进制形式 vector<int> baseNeg2(int n) { if(n==0) return {0}; vector<int> res; int cur; int back; while(n!=0){ cur = n&1; back = abs(cur); res.pu 阅读全文
摘要:
给你一个长度为 n 的数组 nums ,该数组由从 1 到 n 的不同整数组成 另给你一个正整数 k ,统计并返回 nums 中的中位数等于 k 的非空子数组的数目 ###1. 前缀和 + 哈希 容易知道子数组必然包含数字k,其实就是列举包含k子数组,计算并且中位数为k的个数 同时列举两侧的复杂度是 阅读全文
摘要:
你需要制定一份 d 天的工作计划表。工作之间存在依赖,要想执行第 i 项工作,你必须完成全部 j 项工作( 0 <= j < i)。 你每天 至少 需要完成一项任务。工作计划的总难度是这 d 天每一天的难度之和,而一天的工作难度是当天应该完成工作的最大难度。 给你一个整数数组 jobDifficul 阅读全文
摘要:
n 对情侣坐在连续排列的 2n 个座位上,想要牵到对方的手。 人和座位由一个整数数组 row 表示,其中 row[i] 是坐在第 i 个座位上的人的 ID。情侣们按顺序编号,第一对是 (0, 1),第二对是 (2, 3),以此类推,最后一对是 (2n-2, 2n-1)。 返回最少交换座位的次数,以便 阅读全文
摘要:
你可以从中选出任意数量的列并翻转其上的每个单元格。(即翻转后,单元格的值从 0 变成 1,或者从 1 变为 0 ) 返回经过一些翻转后,行与行之间所有值都相等的最大行数 ###1. 编码 + 哈希 首先,可以确定的是通过元操作列翻转,最后必然可以使得至少一行的数值相等 这里我们把第一列固定(由于对称 阅读全文
摘要:
数组值定义为所有相邻元素差值的绝对值之和 翻转任意连续的子数组一次,求可行的最大值 ###1. 暴力分析(超时) 翻转后子数组内部数组值不变,所以只需分析子数组的边界翻转后带来的损失和收益 遍历取最大值即可,注意分情况讨论 枚举所有左右边界 class Solution { public: int 阅读全文
摘要:
给定nums数组和一个初始值start,目标值goal,对start进行以下三种运算得到goal x + nums[i]、x - nums[i]、x ^ nums[i] 返回最少运算次数 ###1. 广度优先+哈希去重剪枝 class Solution { public: int minimumOp 阅读全文
摘要:
给你一个二维字符网格数组 grid ,大小为 m x n ,你需要检查 grid 中是否存在相同值形成的环。 一个环是一条开始和结束于同一个格子的长度大于等于 4 的路径。对于一个给定的格子 你可以移动到它上、下、左、右四个方向相邻的格子之一,可以移动的前提是这两个格子有相同的值 ###1. 深度优 阅读全文