自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 整除分块/数论分块

整除分块/数论分块文章目录整除分块/数论分块定义分块区间端点例题及分析洛谷 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 315

原创 C++ 表达式中的类型转换

C++ 表达式中的类型转换文章目录C++ 表达式中的类型转换简介自动转换强制类型转换总结简介最近刷题经常遇到对结果取模,由于某些操作导致溢出。例如 MOD = 10e9 + 7下列表达式int hash = (base * base) % MOD // base * base 溢出需要在表达式中加入强制类型转换。摘抄C++ Primer Plus 3.4.4 类型转换章节之表达式中的转换。自动转换整形提升(integral promotion): C++ 在计算表达式时,自动将 bool

2020-11-29 01:49:16 682

原创 [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 243

原创 LeetCode 1130 叶值的最小代价生成树

LeetCode 1130 叶值的最小代价生成树文章目录LeetCode 1130 叶值的最小代价生成树题目思路题目给你一个正整数数组 arr,考虑所有满足以下条件的二叉树:每个节点都有 0 个或是 2 个子节点。数组 arr 中的值与树的中序遍历中每个叶节点的值一一对应。(知识回顾:如果一个节点有 0 个子节点,那么该节点为叶节点。)每个非叶节点的值等于其左子树和右子树中叶节点的最大值的乘积。在所有这样的二叉树中,返回每个非叶节点的值的最小可能总和。这个和的值是一个 32 位

2020-11-18 00:31:45 153

原创 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 170

原创 [加速] Opencv DNN通过 GPU 加速推理过程

Opencv 从源码编译python-GPU版本简介安装必须要的库查看cuda版本和显卡型号下载 Opencv 和 Opencv Contrib准备虚拟环境编译和安装GPU 推理简介最近在使用 Opencv HED 算法做边缘检测,在一张 1000X1000 大小的图片推理大概需要6秒,所以想通过GPU加速。之前一种通过 PYPI 安装 opencv-python ,这个版本是不支持GPU的,因此需要从源码编译安装。参考了教程How to use OpenCV’s “dnn” module with

2020-11-12 15:52:33 4128 7

原创 记录一次失败的字节跳动面试「算法」

记录一次失败的字节跳动面试「算法」文章目录记录一次失败的字节跳动面试「算法」简介神经网络参数如何初始化Xavier 初始化He 初始化Dropout在forward里面怎么做L1和L2正则化的区别AUC是什么,写一下代码编程题,类似实现 ndarray.shape简介字节跳动面崩了,记录一下。神经网络参数如何初始化Deeplearning.ai的教程Initializing neural networks :首先神经网络参数不能初始化为0或者任意相同的常量。如果网络参数都是相同常量,那个每个隐层

2020-10-26 20:27:06 412

原创 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 253

原创 快速幂和矩阵快速幂

快速幂和矩阵快速幂文章目录快速幂和矩阵快速幂快速幂乘法防止溢出矩阵快速幂矩阵乘法快速幂斐波那契数列的第N项带备忘录递归(爆栈)思考通项公式通项公式计算(OverflowError)矩阵快速幂(通过)面试快手被问到了23333,这篇文章之前发布到leetcode上面了。快速幂计算 xnx^ nxn 通常需要 nnn 次乘法, 时间复杂度为 O(n)O(n)O(n) , 当 nnn 非常大的时候, 运算效率很低.快速幂是通过把nnn 转化为二进制来实现的. 例如: 计算 x14x^{14}x14,

2020-10-10 16:57:58 179

原创 [NNDL] 最小二乘法解的矩阵形式

最小二乘法解的矩阵形式文章目录最小二乘法解的矩阵形式简介平方损失函数对参数求导求解最优参数简介最近在看 NNDL,其中有一个经验风险最小化的例子,即最小二乘法,定义如下:给定一组包含 NNN 个训练样本的训练机 D={(x(n),y(n))}n=1ND=\{(\mathbf{x}^{(n), }y^{(n)})\}_{n = 1}^ND={(x(n),y(n))}n=1N​ 。使用线性回归。样本和参数均为列向量。f(x;w)=wTxf(\mathbf{x};\mathbf{w}) = \math

2020-10-07 22:14:24 229

翻译 深度学习中需要的矩阵计算

深度学习中需要的矩阵计算摘要介绍复习:标量求导法则向量计算和偏导数矩阵计算Jacobian 矩阵生成向量元素级二元运算符的导数涉及标量运算的导数向量归约和(sum reduction)链式法则Single-variable chain ruleSingle-variable total-derivative chain rule向量链式法则神经激活函数的梯度拓展: 广播函数神经网络损失函数的梯度关于权重的梯度针对偏置项的公式总结The Matrix Calculus You Need For Deep

2020-10-01 21:57:42 2592

原创 Python property 介绍

Python property 介绍文章目录Python property 介绍简介Property 是 Built-in FunctionsProperty 也可用作装饰器Property 实现只读的属性Property 可以做属性的类型和数值验证简介最近看 Effective Python 第四章元类及属性。其中经常出现@property 装饰器。因此总结一下。我理解@property的一个比较直观的好处是可以创建只读的属性,这样可以防止属性呗随意更改。Property 是 Built-in F

2020-09-13 00:53:15 146

原创 零神带我们过模拟面试

零神模拟面试总结文章目录零神模拟面试总结简介题目和题解概率类投硬币(概率/几何级数)取球(条件概率)作业与吃糖(概率/数列知识)数学类导数算法相关逆序对算法选择空间复杂度相关时间复杂度简介最近甜姐群里大家都在面试,总结一些题目。包括群里讨论的面试题,已经零神下班前出的题目,题目和题解概率类投硬币(概率/几何级数)甲乙两人轮流投硬币,先投出正面的赢。如果甲先投硬币,那么甲获胜的概率是多少。分析,可以按照轮来计算:第一轮,甲正面1/21/21/2,乙正面1/2⋅1/2=1/41/2\cd

2020-09-12 00:10:38 261

原创 树状数组/归并排序应用: 计算数组的小和

树状数组/归并排序应用: 计算数组的小和简介思路树状数组归并排序简介面试文远知行,被问到了这道题,牛客程序员代码面试指南: 计算数组的小和题目描述如下:数组小和的定义如下:例如,数组 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 225

原创 欧拉通路/回路和一笔画问题

欧拉通路/回路和一笔画问题简介欧拉通路、欧拉回路和欧拉图无向图有向图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 724

原创 [CV] Rotated IoU 计算旋转矩形之间的重叠面积

[CV] Rotated IoU 计算旋转矩形之间的重叠面积文章目录[CV] Rotated IoU 计算旋转矩形之间的重叠面积简介旋转包围盒的编码方式矢量的旋转公式包围盒转化为角点代码表示相交区域的特点点在四边形(矩形)内点积的物理意义代码线段交点判断线段是否相交相交后转化为直线交点代码计算相交区域面积顶点排序顶点排序代码简易版三角剖分所有代码简介在目标检测的领域,基于Anchor的方法需要对Anchor分配正负样本的标签。通常,对于axis-aligned的anchor和ground truth,

2020-08-30 17:38:40 7761 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 679

原创 [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 567

原创 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 1044 1

原创 CentOS 非root服务器配置

CentOS 非root服务器配置前言Anaconda3zshzsh配置报错: ncurses-devel 相关oh-my-zshVS Code RemoteVSCode修改默认Bash总结前言实习生终于有了自己的远程服务器,但是没有root权限。安装软件有点困难。记录一下配置过程遇到的问题。Anaconda3从THU镜像下载最新的Anaconda3 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-202

2020-08-07 16:02:09 275

原创 LeetCode 0337 打家劫舍III

题目在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,3,null,3,null,1] 3 / \ 2 3 \ \

2020-08-05 10:53:59 161

原创 LeetCode 0406 根据身高重建队列

LeetCode 0406 根据身高重建队列题目思路1(离散化+树状数组 非最优)思路二(排序+贪心)题目假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]

2020-08-04 15:10:58 140

原创 感知机建模及对偶形式

感知机建模及对偶形式线性可分感知机对偶形式线性可分感知机数据建模,每个样本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 176

原创 计算机教育中缺失的一课: Shell

计算机教育中缺失的一课: Shell文章目录计算机教育中缺失的一课: Shell简介基础环境变量流和管道权限Shell ScriptingShell GlobbingShebangShell Script vs FunctionShell Tools寻找如何使用命令查找命令find (查找文件)locate (通过名称查找文件)grep 和 Ripgrep(rg) 查找内容查找使用过的命令Directory Navigation 文件夹导航简介最近打算刷完MIT 的The Missing Semest

2020-07-13 19:43:15 1484

原创 LeetCode1499 满足不等式的最大值

题目给你一个数组 points 和一个整数 k 。数组中每个元素都表示二维平面上的点的坐标,并按照横坐标 x 的值从小到大排序。也就是说 points[i] = [xi, yi] ,并且在 1 <= i < j <= points.length 的前提下, xi < xj 总成立。请你找出 yi + yj + |xi - xj| 的 最大值,其中 |xi - xj| <= k 且 1 <= i < j <= points.length。题目测试数据保证至

2020-07-05 16:26:27 252

原创 LeetCode1498. 满足条件的子序列数目

题目给你一个整数数组 nums 和一个整数 target 。请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的非空子序列的数目。由于答案可能很大,请将结果对 10^9 + 7 取余后返回。思路排序 + 双指针将数组从小到大排序, 双指针left指向排好序的第一个元素, right指向最后一个.首先寻找符合条件的左右端点, 显然nums[left] + nums[right] <= target 时,符合条件, 此时我们统计可以使用的子序列个数为2r

2020-07-05 16:19:04 339

原创 最小生成树(MST) 和 kruskal 算法

最小生成树MSTKruskal 算法图的生成树是一棵含有其所有节点的无环联通子图, 加权图的最小生成树(MST) 是一棵权值和最小的生成树.Kruskal 算法题目对应 LeetCode 1135. 最低成本联通所有城市, 题目如下:想象一下你是个城市基建规划者,地图上有 N 座城市,它们按以 1 到 N 的次序编号。给你一些可连接的选项 conections,其中每个选项 conections[i] = [city1, city2, cost]表示将城市 city1 和城市 city2 连接所要

2020-07-03 23:47:18 311

原创 Effective Python 以 @classmethod 形式的多态去通用地构建对象

Effective Python 24 条. 以 MapReduce 流程为例.常规方法构建 MapReduceimport osfrom threading import Thread# InputData 基类class InputData(object): def read(self): raise NotImplementedError# InputData 具体子类class PathInputData(InputData): def __i

2020-07-02 22:42:27 175

转载 快排 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 304

原创 概率分布之间转换

概率分布总结其他分布转均匀分布均匀分布转其他分布均匀分布转正态分布: 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 5152

原创 LeetCode 1057 校园自行车分配

LeetCode 1057 校园自行车分配题目思路优化题目在由 2D 网格表示的校园里有 n 位工人(worker)和 m 辆自行车(bike),n <= m。所有工人和自行车的位置都用网格上的 2D 坐标表示。我们需要为每位工人分配一辆自行车。在所有可用的自行车和工人中,我们选取彼此之间曼哈顿距离最短的工人自行车对 (worker, bike),并将其中的自行车分配給工人。如果有多个 (worker, bike)对之间的曼哈顿距离相同,那么我们选择工人索引最小的那对。类似地,如果有多种不同的

2020-06-23 22:02:45 396

原创 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 276

转载 [C++] .cpp和.h文件需要放什么

原文地址:C++ 的头文件和实现文件分别写什么

2020-06-20 23:49:45 275

原创 LeetCode 二叉树首个公共祖先

二叉树首个公共祖先题目思路题目设计并实现一个算法,找出二叉树中某两个节点的第一个共同祖先。不得将其他的节点存储在另外的数据结构中。注意:这不一定是二叉搜索树。示例:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点 5 和节点 1 的最近公共祖先是节点 3。注意二叉搜索树的表示root = [3,5,1,6,2,0,8,null,null,7,4] 3 / \ 5 1 / \ / \6

2020-06-19 00:30:20 167

原创 C++ STL 标准库 std::list总结

C++ STL 标准库 std::list总结简介成员函数简介list 好处是常数空间插入和删除元素,但不支持快速随机访问, 通过双向链表实现. 定义在头文件<list> 中, 属于容器.template< class T, class Allocator = std::allocator<T>> class list;成员函数这里有详细的参考有一点需要注意, 在执行pop_front pop_back 等成员函数时, 需要先判断链表是否为

2020-06-17 18:49:36 408

原创 C++ STL 标准库 std::stack 总结

STL 标准库 stack 总结简介Constructor常用的成员函数简介Stack 是一种容器适配器/配接器(container adaptor), 被设计用来支持 LIFO 的数据结构. deque 是双向开口的数据结构, 因此以 deque 为底部结构封闭其头部开口, 就可以形成 Stack. adaptor 指的是通过修改某种容器的接口, 形成另一种数据结构, 因此他不被归类为容器.他被定义在<stack> 头文件中, 如果使用必须引入改头文件, 定义方式为template&

2020-06-17 18:10:39 540

原创 LeetCode 第 193 场周赛

LeetCode 第 193 场周赛一维数组的动态和思路不同整数的最少数目思路制作 m 束花所需的最少天数思路树节点的第 K 个祖先思路一维数组的动态和给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。思路前缀和模板即可class Solution: def runningSum(self, nums: List[int]) -> List[int]: ret

2020-06-16 20:49:40 210

原创 LeetCode 第 28 场双周赛

LeetCode 第 28 场双周赛商品折扣后的最终价格新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入商品折扣后的最终价格给你一个数组 prices ,其中 prices[i] 是商店里第 i 件商品的价格。商店里正

2020-06-14 14:11:31 261

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除