自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Windows10安装CUDA10.1

实验需要用到丹炉,按照官网的命令安装了TensorFlow,装完之后执行 “import tensorflow as tf” 报错“2021-01-27 21:36:17.593775: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library ‘cudart64_110.dll’; dlerror: cudart64_110.dll not found”“2021-01-

2021-01-28 21:05:57 1603 3

原创 vs2019构建64位新版本networkpart工程

上一篇完成了libdash的新版本替换,这一篇就用上一篇生成的libdash.dll和libdash.lib构建一下64位的新版本libdash-networkpart-test工程创建vs2019空项目导入networkpart工程代码和新版库# 1. 工程目录(networkpart)下新建bin目录, 复制上一篇生成的libcurld.dll、libdash.dll和libxml2.dll到bin下# 2. 工程目录(networkpart)下新建libdash目录, # 2.1 在l

2021-01-22 16:44:36 221

原创 vs2019下更新libdash库版本及重新编译

目前大部分平台都是64位的,但bitmovin官方提供的libdash开源代码只有32位平台的,因为要将这个平台嵌入到我自己的播放器中,播放器是64位的,就记录一下更新库版本的记录,主要更新了(curl-7.74.0/libxml2-2.9.10/)...

2021-01-22 15:27:45 803 4

原创 Vim常用命令介绍

这一篇介绍一下Linux系统下的"编辑器之神"——Vim的常用命令

2021-01-15 00:27:12 124

原创 Linux常用命令介绍

使用类Linux编程少不了要用各种命令进行操作,这一篇就介绍一下Linux常用的命令Linux命令格式command [-options] [parameter]lsls #列出当前目录下的文件信息cdcd #切换工作目录pwdpwd #打印当前工作目录的名字touchtouch #创建文件mkdirmkdir #创建目录...

2021-01-14 21:53:38 87

原创 Windows10下Apache2.4服务器搭建

因为要用DASH做实验,需要用Apache做流媒体服务器,这一篇介绍一下Apache服务器的安装和配置过程首先在官网(http://httpd.apache.org/)下载Apache服务器(http://httpd.apache.org/download.cgi#apache24)将压缩包解压后,得到Apache服务器工程文件,放到想要放置的位置(我放在D:/Apache24/)打开readme_first.html按照步骤开始安装根据Installation的步骤开始

2021-01-09 16:24:12 316

原创 FFmpeg + Triple DES加密传输的坑

最近在开发一个rtmp的推流和拉流直播系统,记录一个加密过程的坑方案一直接用Triple DES加密YUV数据,一帧640x480的YUV420P数据单线程加密一次居然要接近1000ms(1fps)的时间,这要是直接用那不相当于放PPT了!!!方案二搞一个线程池用Triple DES加密YUV数据,提高是提高了,起3个线程时间变成原来的三分之一,起6个线程降到190ms一下,这成本太高了,正常播放那得起至少25个线程,还得来个至少25核心的CPU才行,我这6核心的CPU果断放弃这个方案方案三加密

2020-12-18 11:38:51 161

原创 Qt5.12.6 + VS2019添加图片资源文件

记录一下Qt5.12.6 + VS2019添加图片资源的过程双击工程目录中Resource Files目录下的".qrc"文件点击"Add"选择"Add Files"在弹出的对话框中选择要添加的图片,就可以看到添加的图片资源了使用时,单击图片在Resource URL栏就可以看到资源路径如有侵权,请联系删除,如有错误,欢迎大家指正,谢谢...

2020-12-09 22:59:36 4516

原创 Windows10下nginx-1.18.0 + rtmp服务器搭建

这一篇接着搭建一下Windows10下的nginx-rtmp服务器有两种方案:从官网下载nginx源码,并下载rtmp模块(https://github.com/arut/nginx-rtmp-module/)的源码,然后编译直接网站(http://nginx-win.ecsds.eu/)下载编译好的带rtmp模块的nginx 1.7.11.3 Gryphon.zip (http://nginx-win.ecsds.eu/download/)我选了第二种方案下载nginx 1.7.11.3

2020-12-07 20:34:53 1034

原创 Ubuntu18.04下nginx-1.18.0 + rtmp服务器搭建

最近要答一个直播平台,

2020-12-07 18:08:45 1214

原创 Qt5.12.6 + VS2019 点击按钮弹出新窗口

最近做项目需要用到Qt,其中一个小需求是点击按钮弹出一个登录窗口,发现网上的教程大都Qt4或者更早的,记录一下添加过程VS2019创建Qt工程创建新项目,选择Qt Widgets Application,下一步填写项目名称,选择位置,创建弹出Qt创建界面,Next选择编译环境,Next使用默认文件和类名称以及继承关系,Finish工程创建完成...

2020-12-01 23:47:01 1822 1

原创 FFmpeg实现的简单视频编码器(YUV to H264)

FFmpeg实现的从YUV编码到H264的简单视频编码器,FFmpeg version = 4.3.1//encoder.h#ifndef __ENCODER__#define __ENCODER__#include <iostream>#include <string>extern "C" {#include "libavformat/avformat.h"#include "libavutil/imgutils.h"#include "libavutil/o

2020-11-26 11:26:47 418

原创 CMake学习实践笔记

因为找工作的原因有些日子没写博客了,今天又要开始“创作”了,写一篇跨平台的工程构建工具CMake的学习笔记,方便以后随时查看回顾简介背景CMake是kitware公司以及一些开源开发者在开发几个工具套件(VTK)过程的衍生品,最终形成体系,成为一个独立的开源项目,项目诞生于2001年,其官网是https://cmake.org/ 帮助文档是https://cmake.org/documentation/特点开源,使用BSD许可发布跨平台,可生成native编译配置文件,在Linux/Un

2020-11-20 11:06:08 229

原创 KMP算法的扩展应用

这一篇介绍一下关于经典的字符串匹配算法KMP的扩展应用在原始串的后面添加最少的字符生成一个长字符串,使长字符串包含两个原始串时间复杂度:O(N)/* @Author: lwl2020 @Date: 2020-5-29 @Description: 在原始串的后面添加最少的字符生成一个长字符串,使长字符串包含两个原始串*/#include <iostream>#include <string>#include <vector>using name

2020-05-30 12:05:02 166

原创 Manacher算法获取最长回文子串长度及其扩展应用

这一篇介绍一下获取字符串最长回文子串长度的Manacher算法,以及Manacher算法的扩展应用先介绍一个获取字符串最长回文子串长度的暴力解法时间复杂度:O(N^2)/* @Author: lwl2020 @Date: 2020-5-25 @Description: 获取字符串最长回文子串长度的暴力解法*/​#include <iostream>#include <string>using namespace std;​/* 暴力解法:

2020-05-26 17:26:56 205 2

原创 归并排序思想解决小和问题和逆序对问题

小和问题和逆序对问题是归并排序的算法的延伸应用,这篇博客将实现小和问题和逆序对问题的求解小和问题在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和,求一个数组的小和时间复杂度 O(N*logN),空间复杂度 O(N)/* @Author: lwl2020 @Date: 2020-5-20 @Description: 小和问题的实现*/#include <iostream>#include <vector>#include <c

2020-05-20 11:51:57 167

原创 简单消消乐

替换输入字符串的’b’和连续的’a’和’c’/* 'aadbbcc' => 'aadcc' 'abaca' => 'aa' 'aaabbccc' => '' */#include <iostream>#include <string>using namespace std;string removebAndac(string...

2020-04-30 18:24:41 308

原创 第K小的数值对(排序求解O(N * logN)、BFPRT求解O(N))

长度为N的数组arr,一定可以组成N^2个数值对例如:arr = [3, 1, 2],数值对有(3, 3)(3, 1)(3, 2)(1, 3)(1, 1)(1, 2)(2, 3)(2, 1)(2, 2),也就是任意两个数都有数值对,而且自己和自己也算数值对数值对的排序规则,第一维数据从小到大,第一维数据一样的,第二维数据也从小到大上面的数值对排序结果为:(1, 1)(1, 2)(1, 3)...

2020-04-26 11:12:38 170

原创 BFPRT算法实现(C++)

利用荷兰国旗问题的方法求解无序数组中第K小(或大)的数时间复杂度的期望值是O(N)BFPRT算法求解无序数组中第K小(或大)的数时间复杂度是严格的O(N)#include <iostream>#include <vector>#include <algorithm>using namespace std;class BFPRT{public: ...

2020-04-26 10:15:14 377

原创 无序数组中第K小(或大)的数(荷兰国旗问题方法)

在一个无序数组中找到第K小(大)的数—利用荷兰国旗问题的方法求解时间复杂度(期望值): O(N)#include <iostream>#include <vector>#include <ctime>using namespace std;void swap(vector<int>& arr, int n1, int n2) {...

2020-04-25 21:26:23 138

原创 按要求生成指定数组

输入一个int类型的值N,构造一个长度为N的数组arr并返回要求:对任意的i < k < j,都满足arr[i] + arr[j] != arr[k] * 2/* 思路:假定有一个数组满足上述条件,对这个数组进行奇变换和偶变换得到的数组同样符合条件, 将奇变换和偶变换得到的数组合并到一起也是满足条件的 */#include <iostream>#i...

2020-04-25 21:22:43 321

原创 子序列和的模值

小强有一个长度为n的整数数组a和一个数字m,他要在数组a中选择一个子序列,使得这个子序列的和相对m取模后的结果最大,子序列可以为空,请问这个结果最大为多少/* input: 第一行 两个正整数n, m 第二行 n个正整数a1,a2,a3,...,an 1 <= n <= 35, 1 <= m <= 1000000000, 1 <= ai <= ...

2020-04-24 16:27:47 484

原创 字符串无序匹配实现

给定长度为m的字符串aim,以及一个长度为n的字符串str,问能否在str中找到一个长度为m的连续子串,使得这个子串刚好由aim的m个字符串组成,顺序无所谓,返回任意满足条件的一个子串的起始位置,未找到返回-1/* 思路: 创建一个数组count用于统计aim中的字符串出现的频率, 利用滑动窗口在str上从左到右滑动,直到窗口走完整个str或者发现发现匹配的子串 ...

2020-04-22 01:30:28 725

原创 已知二叉搜索树(BST)的前序(或后序)遍历数组重建BST(改进版)

已知BST的前序遍历数组重建BST#include <iostream>#include <vector>using namespace std;struct TreeNode { TreeNode* left; TreeNode* right; int date; TreeNode(int value) : date(value), left(nul...

2020-04-21 22:36:24 362

原创 已知二叉搜索树(BST)的前序(或后序)遍历数组重建BST

已知BST的前序遍历数组重建BST#include <iostream>#include <vector>using namespace std;struct TreeNode { TreeNode* left; TreeNode* right; int date; TreeNode(int value) : date(value), left(nul...

2020-04-21 17:57:58 459 1

原创 最短循环节(KMP)实现

假设字符串str的长度为len,则str存在最小循环节,循环节的长度cycleLen为len-next[len],循环子串为str[0…len-next[len]-1]如果len可以被len - next[len]整除,则表明字符串str可以完全由循环节循环组成如果不能,说明还需要再添加几个字母才能补全,需要补的个数是循环个数cycleLen-len%cycleLen,需要补充的字符串为st...

2020-04-20 11:34:51 469

原创 伪中位数问题

n个数的伪中位数定义为从小到大排序后第[(n + 1)/2]个数。其中,[x]的意思是x向下取整。现在,给你n个数,你需要向其中增加最少的数,使得k成为最后这一组数的伪中位数。请问你需要加入数的最少数/* 输入第一行包含两个数n,k,意为原来数的个数和最后的伪中位数。 接下来一行输入n个数,空格隔开,代表原来的数 思路:将输入的数先进行排序,找到k这个数在原来的数中的位置...

2020-04-18 18:24:06 244

原创 单科成绩优秀奖问题

某学校的期末考试共有n个学生参加,考试科目共有m科,学校将会给一部分学生颁发单科成绩优秀奖,获奖学生需要满足的条件是某一科的成绩是所有学生中最高的或是最高的之一请问学校应该给多少名学生颁发单科成绩优秀奖/* 输入第一行包含两个正整数n和m,分别代表学生人数和考试科目数量。 (n,m <= 500) 接下来有n行,每行有m个正整数,每个正整数在1-100之间,中间用空格隔开,...

2020-04-18 10:22:47 1630

原创 KMP字符串匹配算法实现(C++)

#include <iostream>#include <string>#include <vector>using namespace std;void getNextArr(string& str2, vector<int>& next) { next.at(0) = -1; if (str2.length() ==...

2020-04-09 10:55:47 127

原创 判断镜像回文字符串

/* 给定一个字符换str(只包含字符'1'-'9'),判断这个字符串是不是镜像回文字符串 如一个字符串str与它的倒置字符串reverseStr的每一位都是镜像对应, 那么这个字符串就是镜像回文字符串 对应关系: 1 <==> 1 2 <==> 5 3 <==> 8 4 <==> 7 6 <==...

2020-04-08 21:30:19 457

原创 select、poll和epoll模型

上一篇介绍了Unix网络编程的5种IO模型,这一篇介绍一下IO多路复用里面被广泛使用的select、poll和epoll模型,IO多路复用实现的主旨思想是,不再由应用程序自己监视客户端连接,取而代之由内核替应用程序监视文件selectselect能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数解决1024以...

2020-04-07 11:49:24 99

原创 字符串在指定位置逆序

/* 给定一个字符串str,和一个整数i,i代表str中的位置, 将str[0..i]移到右侧,str[i+1..N-1]移动到左侧 思路:先部分逆序,再整体逆序*/#include <iostream>#include <string>using namespace std;void reversal(string& str, in...

2020-04-06 11:43:16 158

原创 String的构造函数、析构函数和赋值函数的实现(C++)

/* 编写类String的构造函数(普通构造和拷贝构造)、析构函数和赋值函数 */#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;class String {public: String(const char *str = nullptr); String(co...

2020-04-05 22:16:04 138

原创 字符串相乘的实现(C++)

LeetCode 45. 字符串相乘/* 给定两个以字符串形式表示的非负整数 num1 和 num2, 返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式 思路: 1. 乘数 num1 位数为 M,被乘数 num2 位数为 N, num1 x num2 结果 res 最大总位数为 M+N 2. num1[i] x num2[j] 的结...

2020-04-03 22:46:41 1259 3

原创 strcpy函数的实现(C++)

/* 已知strcpy函数的原型是 char *strcpy(char *strDest, const char *strSrc); 其中strDest是目的字符串,strSrc是源字符串*/#include <iostream>using namespace std;char* myStrcpy(char* strDest, const char* ...

2020-04-02 22:16:52 241

原创 字符串的按词倒序

/* 实现字符串的按词倒序功能(注意不是完全倒序), 如果函数输入为字符串“Nothing Is Impossible”,则输出为字符串“Impossible Is Nothing” 思路一: 先将整个字符串翻转,然后逐个单词翻转 思路二: 先逐个单词翻转,然后翻转整个字符串*/#include <iostream>#include &lt...

2020-04-02 21:43:23 773 2

原创 Unix网络编程的5种I/O模型

这一篇介绍一下Unix网络编程的5种I/O模型,在介绍这5中I/O模型之前先介绍一下Unix网络编程中同步/异步和阻塞/非阻塞以及用户空间和内核空间的概念用户空间和内核空间在Linux/Unix中,对于一次读取IO的操作,数据并不会直接拷贝到应用程序的缓冲区(用户空间),它首先会被拷贝到操作系统内核的缓冲区(内核空间)中,然后才会从操作系统内核的缓冲区拷贝到应用程序的缓冲区可以看做是两个过...

2020-03-31 22:47:58 140

原创 字符串常见算法实现(二)

LeetCode 344. 反转字符串/* 将输入的字符串反转过来 */void reverseString(vector<char>& s) { int r = s.size() - 1; int l = 0; while (l < r) { char c = s.at(l); s.at(l++) = s.at...

2020-03-29 17:59:58 93

原创 字符串常见算法实现(一)

这一篇开始介绍一下字符串常见的算法实现LeetCode 面试题 01.04. 回文排列/* 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一 通过计数的方式判断,回文串必定是有0或1个出现奇数次的字符 */class Solution {public: bool canPermutePalindrome(string s) { if (s...

2020-03-29 17:59:22 140

原创 链表常见算法实现(一)

LeetCode 206. 反转链表/* 实现单链表的反转 *//** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class S...

2020-03-26 14:58:08 123

空空如也

空空如也

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

TA关注的人

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