- 博客(65)
- 收藏
- 关注
原创 STL priority_queue自定义排序实现
当使用优先队列适配器是,如果我们想根据自己的需求实现排序,该怎么做呢?具体问题可见leetcode 23 合并K个升序链表函数对象首先来回顾一下什么叫做函数对象?函数对象就是一个重载了()运算符的类的对象,这样就可以直接使用‘对象()’的方式,就像调用函数一样。在STL中,priority_queue的定义如下,其中第三个参数std::less<T> 和 std::greater<T> 都是以函数对象的方式定义在 <function> 头文件中。
2021-12-20 20:06:44
746
原创 Leetcode报错和解决
问题一:runtime error: member access within address 0x602000000000 with insufficient space for an object of type ‘ListNode’即内存读取错误,创建了一个链表的指针,但是一直没有初始化 ,导致系统不知道该指向哪块内存。直接初始化即可。...
2021-11-26 09:04:26
1105
原创 Games101 作业1
#include "Triangle.hpp"#include "rasterizer.hpp"#include<cmath>#include <Eigen>#include <iostream>#include <opencv2/opencv.hpp>constexpr double MY_PI = 3.1415926;Eigen::Matrix4f get_view_matrix(Eigen::Vector3f eye_pos){ .
2021-11-13 10:30:26
2858
1
原创 剑指offer53 在排序数组中查找数字(左右边界)
class Solution {public: int search(vector<int>& nums, int target) { int i = 0, j = nums.size()-1; //查找右边界 while(i<=j){ int mid = i + (j-i)/2; if(nums[mid] <= target) i = mid+1; .
2021-07-07 20:25:34
120
原创 最小的K个数(C++)
1、快速排序的改进其实和快速排序思想相同,只不过当哨兵被换到索引K时,排序结束,返回哨兵前的K个数。class Solution {public: vector<int> getLeastNumbers(vector<int>& arr, int k) { if(k>=arr.size()) return arr; return Least(arr,k,0,arr.size()-1); } vect
2021-06-29 20:49:52
247
原创 STL一些库的使用(待补充)
1、堆大根堆小根堆都可以用STL中的优先队列表示//优先队列默认大根堆,两种写法priority_queue<int> a; priority_queue<int, vector<int>, less<int> > a;//小根堆priority_queue<int, vector<int>, greater<int> > c;2、vector//截取数组arr一部分赋给resres.assig
2021-06-29 20:24:29
146
原创 剑指offer18 删除链表中的节点
题目其实很简单,数据结构的时候就学了,但是现在写下来就是想记录一下大佬的递归写法,感觉很多时候,递归其实是解决链表问题的一种很好的思路,但是自己总是忘掉。1非递归写法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class S..
2021-06-27 11:38:27
64
原创 剑指offer17 打印从1到最大的n位数
这道提取实际上要考虑大数的越界问题,n较大时,数值可能会超出int32的问题,虽然题目中不考虑,但是实际面试中是肯定要体现出来的,所以需要使用字符串表示大数。根据leetcode大佬的题解,实际上我们有两个问题要考虑(1)生成数字的字符串集,这里我们可以采用全排列的方式考虑,这样可以避免了考虑进位的操作。基于分治的思想,我们可以固定高位,然后向低位递归,当个位i而已经被固定时,说明该出自已经确定,打印该数字。(2)删除高位多余的零,这一步其实实现起来也相对容易,直接截取字符串就好啦。..
2021-06-27 11:02:11
78
原创 剑指offer25 合并有序链表(C++)
方法一:正常思路 可以理解为双指针?class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { //伪头节点 ListNode *res = new ListNode(0), *p = res; while(l1 && l2 ){ l1->val < l2->val ? (p->next
2021-06-22 19:57:49
60
原创 剑指offer06 从尾到头打印链表
方法一:栈顺序入栈、逆序出栈/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: vector<int> reversePrint(ListNode* head) {
2021-06-22 19:37:03
69
原创 剑指offer03 数组中重复的数字(C++)
数组中重复的数字这道题目在leetcode中是一道简单题,但实际上这道题目如果在限定时间复杂度、空间复杂度的情况下一定不是一道简单题那么简单,解题思路也同样相对多样,一下列举yi'xia
2021-06-20 10:15:23
127
原创 Flask + Gunicorn + Nginx项目部署
准备工作:1、安装python环境:apt-get install python-dev2、安装flask:pip install flask3、安装Gunicorn:pip install gunicorn4、安装Nginx:apt-get install nginx5、安装supervisor:apt-get install supervisor环境部署: 这里以一个比较简单的项目为例,项目名称为test,flask文件为webtest.py,其中文件如下:#we..
2020-08-07 20:59:11
541
转载 RCNN论文的两篇很好的参考博客
https://zhuanlan.zhihu.com/p/23006190https://blog.csdn.net/v1_vivian/article/details/78599229
2020-07-09 17:14:34
118
原创 林轩田机器学习基石关于机器学习为什么有效的思路(上)
第四章: 首先引入九宫格的故事,表示我们的模型在训练集D上完全正确,不代表我们在未知数据上也能与真是结果一致,我们很难从样本中国学到一个固定的模型答案。所以这一章主要印证是否训练集和情况可以适用于整个输入空间。 所以我们引入霍夫丁不等式来解决这个问题: 其中v和u分别表示N个样本(独立同分布)和总体中的比例。这个式子足以表明,我们可以通过一个近似的算法,,通过增大data的数量或者增大误差的范围,使得估计值与真实值接近。...
2020-05-11 21:01:52
207
转载 PCA的数学原理
搬运:http://blog.codinglabs.org/articles/pca-tutorial.html博主的这篇PCA真的讲的非常好,大家一起学习!
2020-04-05 21:59:22
437
原创 Alphapose 论文理解
因为要做毕业设计,所以看了RMPE: Regional Multi-person Pose Estimation的论文,感觉相关的博客非常的多,但是总是get不到我不理解的点,还是记录下来,以免以后又不懂了。1、简介 单人姿态估计中遇到的错误有两个:定位错误(SPPE认定IoU>0.5就是边界框正确的),姿势冗余(一个人可能会产生多个谷歌模型) 针对这...
2020-01-03 20:40:34
6328
原创 yolo算法理解
之前学习yolo觉得挺简单,不用记的,时过境迁,我终于向我的记忆力屈服了,这知识它不进我的脑子啊!所以现在把影响我理解的地方记下来。YOLO思想: yolo会输入图片分成SxS 的小格子,物体的中心点落到某个格子中,那么这个格子就负责检测出该物体。 对于每个格子,都会检测出B个bounding box(bbox),而对于每个bbox,会预测出五个值。 位置值...
2020-01-03 11:07:51
661
原创 目标检测的玩意儿
经典的目标检测网络RCNN系列分为两步,目标proposal和目标分类。====》Faster-RCNN中把目标proposal和目标分类作为一个网络的两个分支分别输出,大大缩短了计算时间。====》Yolo系列则把这两个分支都省了,只用一个网络同时输出目标的位置和分类。...
2020-01-03 10:45:23
90
原创 python使用scipy.misc import imread报错:ImportError: cannot import name imread
遇到了很多python的scipy.misc的错误module 'scipy.misc' has no attribute 'toimage'ImportError: cannot import name imread等等等等娘的烦死我了就是个版本不匹配问题,怎么都不知道哪两个版本匹配:最后经过多次试错,在我即将放弃之时,终于试对了真所谓”山重水复疑无路,柳暗花明又一村...
2019-12-15 21:17:03
188
转载 PyTorch 0.4新版本 升级指南
搬运:https://blog.csdn.net/jacke121/article/details/80597759
2019-12-12 19:47:41
109
原创 R-CNN、Fast R-CNN,Faster R-CNN
最近正要看Contextual Action Recognition with R*CNN,学习基于动态图像图像的行为识别,所以要恶补下它所需要的知识。也就是目标检测常见的几种算法。1、首先目标检测是什么? 在给定的图片中找到物体的所在位置,并且分辨出物体的类别。这实际上是两个任务。 图像识别:image ----> cat/dog...
2019-12-10 13:26:33
120
原创 树遍历的新方式
之前写二叉树遍历都有两种方式,递归和迭代。递归的代码非常简写好写,但是时间复杂度和空间复杂度总是不能让我们满意,迭代呢,处理的条件总是极为复杂,尤其是后序遍历,真的很恶心,在刷leetcode的时候,看到题解里有一道非常不错的方法,既能够使用栈减少空间复杂度,又能够简洁明了,统一前序遍历,后序遍历,中序遍历的算法。# Definition for a binary tree node....
2019-12-08 08:26:56
127
原创 子序列问题
最近做了两道子序列问题,分别是53、最大子序列和和152、乘积最大子序列他们解决的办法大致相同,都是经过一次遍历保存一个遍历到当前数字的最大值,然后保留一个当前增益或但当前成绩,于是放到一起做一个总结。53、最大子序列和(来自leetcode题解)动态规划的是首先对数组进行遍历,当前最大连续子序列和为 sum,结果为 ans如果 sum > 0,则说明 sum 对结果有增益...
2019-12-06 10:03:17
229
原创 二分法
二分法真的是所谓的玄学代码,反正我昨天刚刚学过的,今天遇到一个题,条件又不会判断了,而且我昨天写的博客不见了,气哭。昨天看到一个很好的讲解二分法的大佬。这里指路☞:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/er-fen-cha-zhao-...
2019-12-06 09:35:40
106
原创 56合并区间
class Solution: def merge(self, intervals: List[List[int]]) -> List[List[int]]: if(not intervals): return [] n=len(intervals) intervals.sort() res=[...
2019-12-05 17:16:42
67
原创 621任务管理器(python实现)
1、第一种方法:排序 我们规定 n + 1 个任务为一轮,这样的好处是同一轮中一个任务最多只能被安排一次。在每一轮中,我们将当前的任务按照它们剩余的次数降序排序,并选择剩余次数最多的 n + 1 个任务依次执行。如果任务的种类 t 少于 n + 1 个,就只选择全部的 t 种任务,其余的时间空闲。这样做的正确性在于,由于冷却时间的存在,出现次数较多的那些任务如果不尽早安排,将会导...
2019-12-04 16:36:42
916
转载 病态矩阵与条件数
病态矩阵与条件数1. 病态系统现在有线性系统: Ax = b, 解方程很容易得到解为:x1 = -100, x2 = -200. 如果在样本采集时存在一个微小的误差,比如,将 A 矩阵的系数 400 改变成 401:则得到一个截然不同的解:x1 = 40000, x2 = 79800.当解集 x 对 A 和 b 的系数高度敏感,那么这样的方程组就是病态的...
2019-12-01 19:49:46
511
原创 sobel算子的使用
再识别银行卡的项目中运用到了sobel算子进行梯度检测:#只对X进行检测gradX = cv2.Sobel(tophat, ddepth=cv2.CV_32F, dx=1, dy=0, #ksize=-1相当于用3*3的 ksize=-1)#加绝对值,白到黑,黑到白的边界都可以检测到gradX = np.absolute(gradX)#将边界归一化处理,看的更清楚(minVal...
2019-12-01 09:29:47
1078
原创 14. 最长公共前缀
改用python刷题,发现python中有很多好用的内置函数。set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。>>>x = set('runoob')>>> y = set('google')>>> x, y(set(['b', 'r', 'u', 'o', 'n']), s...
2019-11-10 20:29:22
157
原创 python路径问题
路径不要又用/又用//,容易出问题表示路径有以下三种方式path=r'E:\rec\data\train\call'path='E:\\rec\\data\\train\\call'path='E:/rec/data/train/call'推荐第三种,windows,linux通用...
2019-11-09 10:16:35
285
原创 处理标签和损失的两种方法
第一种方法是one-hot 编码是分类数据广泛使用的一种格式,也叫分类编码(categorical encoding)。def to_one_hot(labels, dimension=46): results = np.zeros((len(labels), dimension)) for i, label in enumerate(labels): res...
2019-11-08 19:54:52
415
转载 归一化(Batch Normalization)
BN是由Google于2015年提出,这是一个深度神经网络训练的技巧,它不仅可以加快了模型的收敛速度,而且更重要的是在一定程度缓解了深层网络中“梯度弥散”的问题,从而使得训练深层网络模型更加容易和稳定。所以目前BN已经成为几乎所有卷积神经网络的标配技巧了。从字面意思看来Batch Normalization(简称BN)就是对每一批数据进行归一化,确实如此,对于训练中某一个batch的数据{x1...
2019-11-05 16:02:41
844
原创 xavier_initializer初始化
xavier_initializer( uniform=True, seed=None, dtype=tf.float32)返回对权重执行“ Xavier”初始化的初始化器。使用:def initialize_parameters(): tf.set_random_seed(1) W1= tf.get_variable("W1",...
2019-11-03 10:22:05
5137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人