算法
lih627
可以通过训练提高自己的平均水平并减少方差。
展开
-
整除分块/数论分块
整除分块/数论分块文章目录整除分块/数论分块定义分块区间端点例题及分析洛谷 P2261 余数求和牛客: 天花板参考:整数分块及详细证明整除分块定义计算 ∑i=1n⌊ni⌋\sum_{i=1}^{n}\lfloor\frac{n}{i}\rfloor∑i=1n⌊in⌋ ,打表时间复杂度是O(n)O(n)O(n) 。显然存在区间[l,r][l, r][l,r],⌊nl⌋=⌊nr⌋\lfloor \frac{n}{l}\rfloor = \lfloor \frac{n}{r} \rfloor⌊原创 2020-12-05 18:26:03 · 419 阅读 · 0 评论 -
[CV] 联通状态估计
[CV] 联通状态估计文章目录[CV] 联通状态估计简介算法流程代码简介联通状态估计可以通过Two-Pass 算法实现,基于并查集。假设对于一张图片,背景标记为-1,前景标记为0,统计图片中的联通区域。下面动图可以展示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5TFKnvYw-1606470671056)(https://raw.githubusercontent.com/lih627/MyPicGo/master/imgs/20201127174926.g原创 2020-11-27 17:51:32 · 353 阅读 · 0 评论 -
LeetCode 1130 叶值的最小代价生成树
LeetCode 1130 叶值的最小代价生成树文章目录LeetCode 1130 叶值的最小代价生成树题目思路题目给你一个正整数数组 arr,考虑所有满足以下条件的二叉树:每个节点都有 0 个或是 2 个子节点。数组 arr 中的值与树的中序遍历中每个叶节点的值一一对应。(知识回顾:如果一个节点有 0 个子节点,那么该节点为叶节点。)每个非叶节点的值等于其左子树和右子树中叶节点的最大值的乘积。在所有这样的二叉树中,返回每个非叶节点的值的最小可能总和。这个和的值是一个 32 位原创 2020-11-18 00:31:45 · 219 阅读 · 0 评论 -
LeetCode 1074 元素为目标值的子矩阵数量
LeetCode 1074 元素为目标值的子矩阵数量文章目录LeetCode 1074 元素为目标值的子矩阵数量题目思路一 前缀和思路二 前缀和+哈希表优化题目给出矩阵 matrix 和目标值 target,返回元素总和等于目标值的非空子矩阵的数量。子矩阵 x1, y1, x2, y2 是满足 x1 <= x <= x2 且 y1 <= y <= y2 的所有单元 matrix[x][y] 的集合。如果 (x1, y1, x2, y2) 和 (x1', y1', x2',原创 2020-11-14 15:06:19 · 263 阅读 · 0 评论 -
LeetCode 面试题05.04 下一个数(位运算)
LeetCode 面试题05.04 下一个数(位运算)文章目录LeetCode 面试题05.04 下一个数(位运算)题目思路题解参考:github 代码LeetCode题解代码集合中的位运算题目题目来自LeetCode 面试题05.04下一个数。给定一个正整数,找出与其二进制表达式中 1 的个数相同且大小最接近的那两个数(一个略大,一个略小)。示例 1: 输入:num = 2(或者0b10)输出:[4, 1] 或者([0b100, 0b1])示例 2:输入:num = 1输原创 2020-10-17 17:38:11 · 347 阅读 · 0 评论 -
快速幂和矩阵快速幂
快速幂和矩阵快速幂文章目录快速幂和矩阵快速幂快速幂乘法防止溢出矩阵快速幂矩阵乘法快速幂斐波那契数列的第N项带备忘录递归(爆栈)思考通项公式通项公式计算(OverflowError)矩阵快速幂(通过)面试快手被问到了23333,这篇文章之前发布到leetcode上面了。快速幂计算 xnx^ nxn 通常需要 nnn 次乘法, 时间复杂度为 O(n)O(n)O(n) , 当 nnn 非常大的时候, 运算效率很低.快速幂是通过把nnn 转化为二进制来实现的. 例如: 计算 x14x^{14}x14,原创 2020-10-10 16:57:58 · 374 阅读 · 0 评论 -
零神带我们过模拟面试
零神模拟面试总结文章目录零神模拟面试总结简介题目和题解概率类投硬币(概率/几何级数)取球(条件概率)作业与吃糖(概率/数列知识)数学类导数算法相关逆序对算法选择空间复杂度相关时间复杂度简介最近甜姐群里大家都在面试,总结一些题目。包括群里讨论的面试题,已经零神下班前出的题目,题目和题解概率类投硬币(概率/几何级数)甲乙两人轮流投硬币,先投出正面的赢。如果甲先投硬币,那么甲获胜的概率是多少。分析,可以按照轮来计算:第一轮,甲正面1/21/21/2,乙正面1/2⋅1/2=1/41/2\cd原创 2020-09-12 00:10:38 · 421 阅读 · 0 评论 -
树状数组/归并排序应用: 计算数组的小和
树状数组/归并排序应用: 计算数组的小和简介思路树状数组归并排序简介面试文远知行,被问到了这道题,牛客程序员代码面试指南: 计算数组的小和题目描述如下:数组小和的定义如下:例如,数组 s = [1, 3, 5, 2, 4, 6]在 s[0] 的左边小于或等于 s[0] 的数的和为 000在 s[1] 的左边小于或等于 s[1] 的数的和为 111在 s[2] 的左边小于或等于 s[2] 的数的和为 1+3=41+3=41+3=4在 s[3] 的左边小于或等于 s[3] 的数的和为 111原创 2020-09-09 16:13:09 · 333 阅读 · 0 评论 -
欧拉通路/回路和一笔画问题
欧拉通路/回路和一笔画问题简介欧拉通路、欧拉回路和欧拉图无向图有向图Hierholzer 算法LeetCode [332. 重新安排行程](https://leetcode-cn.com/problems/reconstruct-itinerary/)LeetCode [753. 破解保险箱](https://leetcode-cn.com/problems/cracking-the-safe/)简介LeetCode 每日一题刷到了一笔画问题。其核心是找到图的欧拉通路或欧拉回路。之前用DFS做的,算法也原创 2020-09-08 13:03:12 · 897 阅读 · 0 评论 -
[CV] Rotated IoU 计算旋转矩形之间的重叠面积
[CV] Rotated IoU 计算旋转矩形之间的重叠面积文章目录[CV] Rotated IoU 计算旋转矩形之间的重叠面积简介旋转包围盒的编码方式矢量的旋转公式包围盒转化为角点代码表示相交区域的特点点在四边形(矩形)内点积的物理意义代码线段交点判断线段是否相交相交后转化为直线交点代码计算相交区域面积顶点排序顶点排序代码简易版三角剖分所有代码简介在目标检测的领域,基于Anchor的方法需要对Anchor分配正负样本的标签。通常,对于axis-aligned的anchor和ground truth,原创 2020-08-30 17:38:40 · 8488 阅读 · 7 评论 -
[CV] Anchor-Free Target Assignment 高斯核半径
[CV] Anchor-Free Target Assignment 高斯核半径简介代码原理解释情况1情况2情况3简介有两篇经典 Anchor-Free 算法,CornerNet 和 CenterNet,Target Assignment 过程都是用了位置和包围核尺度生成自适应高斯分布,即高斯核半径是通过包围核尺度计算得到的。这里作者论文都是一带而过,然而如何计算还是有很多学问在里面。Github也有对于他们的讨论。我参考了以下资料:知乎:说点 Cornernet/Centernet 代码里面 G原创 2020-08-26 14:17:06 · 706 阅读 · 0 评论 -
[CV] 快速计算灰度图 bounding box 内部的方差
[CV] 快速计算灰度图 bounding box 内部的方差简介Haar 特征快速计算方差简介给定一张灰度图和一系列 bounding boxes,每个bounding box(bbox) 通过 [left, top, right, down] 编码,计算每个 bbox 内部像素的均值和方差。直观的思路是对每个bbox计算均值然后计算方差,每一个的时间复杂度为O(k⋅w⋅h)O(k\cdot w\cdot h)O(k⋅w⋅h) 其中 kkk 是一个常量。当 bbox 很多的时候,时间复杂度过高。 计原创 2020-08-25 18:37:05 · 661 阅读 · 0 评论 -
DeepGlint AI编程练习赛: 对抗性攻击
DeepGlint AI编程练习赛: 对抗性攻击题目大意思路代码题目大意给定神经网络表达式:Y=softmax(W2×ReLU(W1×X))Y = \text{softmax}(W_2\times\text{ReLU}(W_1\times X))Y=softmax(W2×ReLU(W1×X))其中XXX 是NNN维向量W1W_1W1 为M×NM\times NM×N 矩阵ReLU(x)=max(0,x)\text{ReLU}(x)=\max(0, x)ReLU(x)=max(0,x)原创 2020-08-11 11:06:43 · 1116 阅读 · 1 评论 -
LeetCode 0337 打家劫舍III
题目在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,3,null,3,null,1] 3 / \ 2 3 \ \原创 2020-08-05 10:53:59 · 178 阅读 · 0 评论 -
感知机建模及对偶形式
感知机建模及对偶形式线性可分感知机对偶形式线性可分感知机数据建模,每个样本x=[x1,x2,,...xn]\mathbb{x}=[x_1,x_2,_,...x_n]x=[x1,x2,,...xn],二分类问题,对应标签y∈{−1,1}y\in\{-1, 1\}y∈{−1,1},构造线性分类器:y=sign(w⋅xT+b)y = \text{sign}\left(\mathbb{w \cdot x}^T+b\right)y=sign(w⋅xT+b)对任意一样本对(xi,yi)(\mathb原创 2020-08-03 18:33:34 · 256 阅读 · 0 评论 -
LeetCode 第 194 场周赛
LeetCode 第 194 场周赛数组异或操作思路和代码保证文件名唯一思路及代码避免洪水泛滥思路及代码找到最小生成树里的关键边和伪关键边这次周赛比以往难很多.数组异或操作给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。思路和代码直接暴力class Solution: def xorOperation(self,原创 2020-06-22 03:21:45 · 302 阅读 · 0 评论 -
最小生成树(MST) 和 kruskal 算法
最小生成树MSTKruskal 算法图的生成树是一棵含有其所有节点的无环联通子图, 加权图的最小生成树(MST) 是一棵权值和最小的生成树.Kruskal 算法题目对应 LeetCode 1135. 最低成本联通所有城市, 题目如下:想象一下你是个城市基建规划者,地图上有 N 座城市,它们按以 1 到 N 的次序编号。给你一些可连接的选项 conections,其中每个选项 conections[i] = [city1, city2, cost]表示将城市 city1 和城市 city2 连接所要原创 2020-07-03 23:47:18 · 329 阅读 · 0 评论 -
快排 Partition 写法
有两种写法:第一种int partition(vector<int>&arr, int low, int high){ int pivot = arr[low];//选第一个元素作为枢纽元 while(low < high) { while(low < high && arr[high] >= pivot)high--; arr[low] = arr[high];//从后面开始找到第一个小于p转载 2020-06-29 12:08:12 · 337 阅读 · 0 评论 -
概率分布之间转换
概率分布总结其他分布转均匀分布均匀分布转其他分布均匀分布转正态分布: Box-Muller正态分布转均匀分布今天遇到一个问题, 假设热噪声的概率分布式正态分布, 能否将其转化为[0, 1]均匀分布, 答案是可以的. 为此总结一下概率分布相关的性质.其他分布转均匀分布严格单调递增累积分布函数服从均匀分布首先注意, [0, 1] 均匀分布的累计分布函数为F(X)=X,0≤X≤1F(X) = X, 0\leq X\leq 1F(X)=X,0≤X≤1另Y=F(X)Y=F(X)Y=F(X), XXX为任意分原创 2020-06-29 11:51:58 · 5303 阅读 · 0 评论