上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 35 下一页
摘要: 一个数组的分数定义为数组之和乘以数组的长度 ###1. 前缀和 + 二分 ``` class Solution { public: long long countSubarrays(vector& nums, long long k) { //注意是正整数数组 int n = nums.size() 阅读全文
posted @ 2023-05-24 19:26 失控D大白兔 阅读(12) 评论(0) 推荐(0)
摘要: 将数组分为三个部分,每部分对应二进制数值相同 ###1. 三指针 各部分1的数目应当相同,借助这个性质来找三个指针的起始位置 根据最后一个指针起始位置确定串的长度,逐位比较即可 ``` class Solution { public: vector threeEqualParts(vector& a 阅读全文
posted @ 2023-05-24 18:49 失控D大白兔 阅读(146) 评论(0) 推荐(0)
摘要: 在一颗无向树上青蛙从顶点1起跳,问T秒后停留在目标位置的概率 ###1. 深度优先搜索 问题规模可以进一步递归拆分,概率等于下一个节点到目标概率的平均值 ``` class Solution { public: double frogPosition(int n, vector>& edges, i 阅读全文
posted @ 2023-05-24 01:10 失控D大白兔 阅读(20) 评论(0) 推荐(0)
摘要: 给你一个n节点的无向带权连通图,同时告诉你边的端点和权值 对于部分权为-1的边,可以进行修改为任意值,最后使得初始点到目标点最短距离为target ###1. Dijkstra 第一次使用迪杰斯特拉算法,将所有能修改的权值视作1,计算到各点的最短距离 判断该距离是否有操作空间,满足要求的情况下计算要 阅读全文
posted @ 2023-05-23 01:35 失控D大白兔 阅读(94) 评论(0) 推荐(0)
摘要: 给你一棵以 root 为根的 二叉树 ,请你返回任意二叉搜索子树的最大键值和 ###1. 中序遍历+记录多个返回值 ``` class Solution { public: //求子树键值需要后序遍历,判断二叉搜索树需要中序遍历 //判断二叉树也可以用判断左右值加中序遍历的方式,所以这里采用中序遍历 阅读全文
posted @ 2023-05-21 23:00 失控D大白兔 阅读(31) 评论(0) 推荐(0)
摘要: **模板** ``` int n = nums.size(); vector left(n, -1); //贡献法记录左辖域,开区间 vector right(n, n); //贡献法记录右辖域,开区间 stack st; //单调栈,降序记录 for(int i=0;i 单调栈+前缀和 ``` c 阅读全文
posted @ 2023-05-19 21:02 失控D大白兔 阅读(32) 评论(0) 推荐(0)
摘要: 总力量定义为以下两个值的 乘积: 巫师中最弱的能力值 组中所有巫师的个人力量值之和 ###1. 单调栈+前缀和+前缀和 根据单调栈求得每一个值的辖域(当前值为最小值的最长数组范围) 接下来问题就转化成了求在辖域中包含当前值所有子数组的和 求和我们采用前缀和的方式 > 对于abcde,假设c为当前辖域 阅读全文
posted @ 2023-05-19 21:01 失控D大白兔 阅读(36) 评论(0) 推荐(0)
摘要: 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。 ###1. 单调栈 假如要遍历所有区间,哪怕可以直接获得最小值,时间复杂度也是O(n^2^) 这里我们不逐个找对应区间,而是计算每个值对区间的贡献,可以将时间复杂度降到O(n) 其实也就找遍历时 阅读全文
posted @ 2023-05-19 17:19 失控D大白兔 阅读(80) 评论(0) 推荐(0)
摘要: 求所有子序列最大值的平方乘以最小值的和 ###1. 数学规律 首先可以发现顺序对结果没有影响,对原数组按升序进行排序,方便从小到大遍历枚举 由于数据量很大,一般只会遍历一次,所以要找数学规律 考虑遍历时的无后效性,前面数组遍历完后,必然会给后面留下一个值 可以通过这个值和当前遍历值计算出以当前值为结 阅读全文
posted @ 2023-05-19 14:51 失控D大白兔 阅读(34) 评论(0) 推荐(0)
摘要: 一个工作时间段可以连续工作sessiontime个小时 给你任务列表task,task[i]表示第i项任务花费时间 求完成全部工作所需最小时间段(可以按任意顺序完成任务) ####1. 回溯法 回溯时按任务下标推进,边界条件为任务下标等于任务长度 同时要记录回溯几个状态, 分别是当前任务下标、已用时 阅读全文
posted @ 2023-05-19 13:11 失控D大白兔 阅读(151) 评论(0) 推荐(0)
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 35 下一页