<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ProLover98的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ProLover98</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ProLover98]]></copyright><item><title><![CDATA[【力扣】725. 分隔链表]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/115261079</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/115261079</guid><author>ProLover98</author><pubDate>Sat, 27 Mar 2021 10:47:36 +0800</pubDate><description><![CDATA[题目概述
原题链接

链表定义如下：
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */

思考过程

根据题意，需要将原链表尽可能等分，设原链表长度为n，那么有三种情况

n &lt; k：即原链表长度小于要划分的组数，那么只有前面n组有元素且]]></description><category></category></item><item><title><![CDATA[【力扣】114. 二叉树展开为链表]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/115000553</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/115000553</guid><author>ProLover98</author><pubDate>Fri, 19 Mar 2021 11:15:16 +0800</pubDate><description><![CDATA[题目概述
原题链接

树定义如下：
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), rig]]></description><category></category></item><item><title><![CDATA[【力扣】654. 最大二叉树]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/114881893</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/114881893</guid><author>ProLover98</author><pubDate>Tue, 16 Mar 2021 15:05:53 +0800</pubDate><description><![CDATA[题目概述

原题链接

相关节点定义：

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), ]]></description><category></category></item><item><title><![CDATA[【力扣】面试题 04.03. 特定深度节点链表]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/114849735</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/114849735</guid><author>ProLover98</author><pubDate>Mon, 15 Mar 2021 20:34:54 +0800</pubDate><description><![CDATA[题目概述
原题链接

树及链表定义如下:
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
/**
 * Definition for singly-linked lis]]></description><category></category></item><item><title><![CDATA[【力扣】589. N 叉树的前序遍历]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/114750089</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/114750089</guid><author>ProLover98</author><pubDate>Sat, 13 Mar 2021 16:19:39 +0800</pubDate><description><![CDATA[题目概述
给定一个 N 叉树，返回其节点值的前序遍历 ，N叉树节点定义如下：
class Node {
public:
    int val;
    vector&lt;Node*&gt; children;

    Node() {}

    Node(int _val) {
        val = _val;
    }

    Node(int _val, vector&lt;Node*&gt; _children) {
        val = _val;
        child]]></description><category></category></item><item><title><![CDATA[【数字图像处理】灰度变换与空间滤波]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/108740681</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/108740681</guid><author>ProLover98</author><pubDate>Tue, 22 Sep 2020 20:43:10 +0800</pubDate><description><![CDATA[目录说明
说明

本系列用于记录数字图像处理的学习笔记，课程为中国科学院大学焦建彬老师的数字图像处理
本篇为灰度变换与空间滤波


]]></description><category></category></item><item><title><![CDATA[【数字图像处理】数字图像基础]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/108702997</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/108702997</guid><author>ProLover98</author><pubDate>Mon, 21 Sep 2020 16:39:17 +0800</pubDate><description><![CDATA[目录说明四、图像的表示与描述图像的数学表示计算机内图像表示方式五、像素间的一些基本关系像素的领域像素的邻接像素的连接像素的通路像素集合间的邻接、连接、连通像素间的距离六、常用数学工具介绍阵列与矩阵操作线性操作与非线性操作空间操作概率方法七、数字图像处理基本运算像素级运算空间域变换直方图变换
说明

本系列用于记录数字图像处理的学习笔记，课程为中国科学院大学焦建彬老师的数字图像处理
本篇数字图像基础

四、图像的表示与描述
图像的数学表示

计算机内图像表示方式

灰度图像：像素的灰度级通常为8bits，即0]]></description><category></category></item><item><title><![CDATA[【LeetCode】39. Combination Sum（C++）]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/108482186</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/108482186</guid><author>ProLover98</author><pubDate>Wed, 09 Sep 2020 10:02:02 +0800</pubDate><description><![CDATA[题目概述

给定一个无重复元素的数组 candidates 和一个目标数 target ，找出 candidates 中所有可以使数字和为 target 的组合。
candidates 中的数字可以无限制重复被选取。
原题链接
例如：
输入：candidates = [2,3,6,7], target = 7
输出：[ [7], [2,2,3] ]
难度级别：Medium

思考过程

首先想的是用两层for循环，计算从i开始到结尾所有满足条件的解法。问题在于不能进行跳选。
思考很久发现对这类题不太了解，故]]></description><category></category></item><item><title><![CDATA[【deepstream】deepstream调用opencv(c与c++联合编译)]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/108217510</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/108217510</guid><author>ProLover98</author><pubDate>Tue, 25 Aug 2020 15:22:53 +0800</pubDate><description><![CDATA[目的
在deepstream项目中调用opencv库，丰富deepstream功能（如往deepstream加入kalman filter实现跟踪）
操作环境

Ubuntu 18.04
Qt Creatot 5.14.0
qmake 3.1
deepstream 5.0
opencv  3.4.11

下面以deepstream自带项目deepstream-image-meta-test为例进行说明
操作步骤


首先复制一份并命名为opencv-deepstream，并在终端进入该目录，文件夹中项目如下]]></description><category></category></item><item><title><![CDATA[【C++】内联函数和const]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/107160234</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/107160234</guid><author>ProLover98</author><pubDate>Mon, 06 Jul 2020 20:26:12 +0800</pubDate><description><![CDATA[内联函数

内联函数表示：在函数返回值前加inline
内联函数的声明和定义放在一起（都放在头文件中），否则编译器就会报错
使用inline的情形：

小函数，代码量在2-3行
需要被频繁调用的函数（比如在循环中的函数）


不使用inline的情形：

代码量大的函数（超过20行）
递归函数



const
针对于普通变量
const表面声明的变量不可更改且同样具有生存空间(scope)，需要进行初始化，不过可以在const前加extern表明该变量是定义在某处的全局变量

const定义的变量未进行明]]></description><category></category></item><item><title><![CDATA[【C++】继承]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/107126778</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/107126778</guid><author>ProLover98</author><pubDate>Sat, 04 Jul 2020 21:40:35 +0800</pubDate><description><![CDATA[继承语法
B继承自A，那么B可以访问A的public成员变量，格式如下：
class derived-class: access-specifier base-class，其中，访问修饰符 access-specifier 是 public、protected 或 private 其中的一个，base-class 是之前定义过的某个类的名称。如果未使用访问修饰符 access-specifier，则默认为 private。几乎不使用 protected 或 private 继承，通常使用 public 继承]]></description><category></category></item><item><title><![CDATA[【C++】初始化列表及对象组合]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/107122406</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/107122406</guid><author>ProLover98</author><pubDate>Sat, 04 Jul 2020 15:21:57 +0800</pubDate><description><![CDATA[初始化列表
实现
实现方式：在构造函数()后跟:，然后给出变量的初始值，如下：

完整的实现如下：

头文件

源文件

main函数

结果


初始化列表与正常在构造函数{}初始化区别

初始化列表可以初始任何类型数据
初始化列表中的变量在构造函数之前完成，而构造函数{}中是在调用构造函数时完成声明与赋值
关键区别在于如果需要对类对象进行申明，如何在{}中申明则需要单独写一个空的构造函数，而使用初始化列表就不会出现这种问题

对象组合
即类定义中使用其他类作为成员变量，如下：



...]]></description><category></category></item><item><title><![CDATA[【C++】访问限制及类的表示（class & struct）]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/107106973</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/107106973</guid><author>ProLover98</author><pubDate>Sat, 04 Jul 2020 10:36:26 +0800</pubDate><description><![CDATA[设置访问限制的目的
用来限制类中哪些成员能够被哪些人访问
public
任何人都能访问
private
只有该类的成员函数能够访问
protected
只有该类以及继承于该类的类能够访问
friend

可以在定义中声明别人是朋友，那么朋友就可以访问private的内容
示例


C++中class和struct
两者都用来表达类，基本相同，唯一的区别是class缺省参数默认是private，而struct默认是public，C++首选class

...]]></description><category></category></item><item><title><![CDATA[【C++】动态内存分配（new & delete）]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/107102097</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/107102097</guid><author>ProLover98</author><pubDate>Fri, 03 Jul 2020 13:47:32 +0800</pubDate><description><![CDATA[简单介绍
为了能够实现动态内存分配，C++使用运算符new创建内存空间，用delete释放分配出去的空间
new
可以使用new分配以下三种类型的内存空间，即基本类型，类，数组

new int
new classname
new int[10]，new classname[10]
new所做的事情有三种：分配内存空间、调用构造函数（如果new的对象是类的话）以及提供分配空间的地址信息
注：new 创建的是指针对象

delete
使用delete释放给定地址的内存空间（p代表需要收回空间的对象地址），以下]]></description><category></category></item><item><title><![CDATA[【C++】构造函数与析构函数]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/107033357</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/107033357</guid><author>ProLover98</author><pubDate>Tue, 30 Jun 2020 09:21:17 +0800</pubDate><description><![CDATA[出现的原因

以上程序在调用时需要首先赋予成员变量x和y一个初始值（即调用init函数），但由于粗心可能遗忘进行初始化，那么程序就会出现不确定性，为了避免这种情况的出现，C++引入构造器
构造函数（constructor）性质

与类同名
没有返回类型
在类对象被创建的时候自动调用构造函数
构造函数允许传入参数
那么在调用的时候需要使用如下方式使用：


析构函数（destructor）性质

与类同名，且在前面多出一个~
没有返回类型
析构函数不允许传入参数
当对象要被消灭的时候（即超出对象定义范围）自动]]></description><category></category></item><item><title><![CDATA[【C++】C++系列知识学习]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/107017179</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/107017179</guid><author>ProLover98</author><pubDate>Mon, 29 Jun 2020 23:33:28 +0800</pubDate><description><![CDATA[说明
本博客主要用来记录C++学习过程中的重要知识点，不是很全，但尚可了解到一些基本知识，为便于管理，将不同知识点分开记录。
相关系列博客
C++面向对象编程基本框架
析构函数

]]></description><category></category></item><item><title><![CDATA[【C++】C++面向对象编程基本框架]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/107017279</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/107017279</guid><author>ProLover98</author><pubDate>Mon, 29 Jun 2020 14:56:35 +0800</pubDate><description><![CDATA[基本框架
头文件（*.h）
主要是类的声明（相当于接口），包含public和private等相关成员变量，以售货机为例，可得到如下图所示代码。

其中以 #开头的三行目的是定义宏且不重复定义（ifndef-&gt;if not def）
源文件（.cpp，与.h相对应）
源文件中主要用来实现头文件中声明的函数，部分头文件中声明的函数实现代码如下。

main.cpp（主要用于“启动”程序）
即main函数存在此文件中，便于不同类函数实现，基本可实现代码如下

上图所示代码，输出为


...]]></description><category></category></item><item><title><![CDATA[【Pytorch】tensor索引另一个tensor（tensor[tensor]）]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/105203975</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/105203975</guid><author>ProLover98</author><pubDate>Mon, 30 Mar 2020 19:41:29 +0800</pubDate><description><![CDATA[说明
最近在使用pytorch中tensor的时候，遇到了需要使用tensor1[tensor2]的情况，发现了这篇博客，他从代码的角度解释了其工作原理，这里我用图示的方式解释tensor类型为longTensor时的情况
工作原理

首先，创建两个tensor，如下：import numpy as np
import torch
x1 = np.array([[1,0,0,1],[1,1,0,1...]]></description><category></category></item><item><title><![CDATA[【Pytorch】加载torchvision中预训练好的模型并修改默认下载路径（使用models.__dict__[model_name]()读取）]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/104792115</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/104792115</guid><author>ProLover98</author><pubDate>Wed, 11 Mar 2020 11:53:53 +0800</pubDate><description><![CDATA[说明
使用torchvision.model加载预训练好的模型时，发现默认下载路径在系统盘下面的用户目录下（这个你执行的时候就会发现），即C:\用户名\.cache\torch\.checkpoints下，便于统一管理，我决定修改model的存放路径，在网上找了很久都没有很好的解决方法，只能自己尝试，现将解决方案给出，供大家参考~
操作环境

windows10 + Anaconda
torch:...]]></description><category></category></item><item><title><![CDATA[【Pytorch】Windows安装visdom]]></title><link>https://blog.youkuaiyun.com/ProLover98/article/details/104365342</link><guid>https://blog.youkuaiyun.com/ProLover98/article/details/104365342</guid><author>ProLover98</author><pubDate>Mon, 17 Feb 2020 21:57:40 +0800</pubDate><description><![CDATA[说明
本博客最终解决方案参考自windows上使用visdom遇到的问题
再写一遍的目的是为了提醒一下自己这个花了多长时间解决…
遇到的问题
我遇到的问题是顺利安装完visdom后，一直卡在如下图所示的地方，死活不动

我尝试过的方法

卸载由pip安装的visdom，然后到GitHub上下载源码进行安装，此方法失败，有人成功过，大家可以尝试一下
具体步骤：

解压缩下载的zip文件，通过命令进行...]]></description><category></category></item></channel></rss>