自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 游戏服务器的帧率控制

如图中的“图A”,Tick1和Tick2的时间是相等的,如果实际执行的比上次执行时间长(Run2 > Run1),则Sleep2 < Sleep1,同时满足等式:Tick1 = Tick2 = Run1 + Sleep1 = Run2 + Sleep2。(1)从WorldTimer::getMSTime()得到一个uint32的值realCurrTime,realCurrTime是循环的(到增加到0xFFFFFFFF后,在增加就变成0),表示当前时间,单位是毫秒,是一个相对前一次tick的时间。

2023-07-26 15:28:11 287

原创 基于CAS的无锁队列

这里需要注意的是,单生产者和单消费者模型,不需要加锁和原子操作,是否线程安全?理论是不安全的,但对这种特殊模式的结果是不影响的。

2023-07-24 18:22:32 140

转载 mysql数据库的完全备份

MySQL自带的备份工具,可方便实现对MySQL的备份。1)source命令【作用于mysql模式下】2)mysql命令【作用于于linux模式下】musqldump可针对库内特定的表进行备份。2、使用source恢复数据库的步骤。执行source备份sql脚本的路径。可以将指定的库、表导出为SQL脚本。使用mysqldump备份表的操作。使用命令mysql导入备份的数据。登录到mysql数据库。source恢复的示例。

2023-07-24 09:58:24 1055

原创 配置linux机器的core文件规则

最底下加入sysctl -p。

2023-07-21 18:01:01 167

原创 linux程序后台运行

这种方式会将日志写入nohup.out文件,写操作可能会和你的程序冲突,导致程序的CPU很高。方法一:nohup ./可执行文件 &相当于启动一个新的终端在后台运行。4、进入已经挂起的screen。3、查看所有的screen。5、查看帮助,了解更多用法。方法二:使用screen。1、启动一个screen。

2023-06-06 18:17:15 610

原创 linux磁盘满了,排查方法

第三步:一直循环第二步,然后清除占用内存较大的垃圾文件,一般是程序的输出日志。第二步:查看哪个目录占用率高。第一步:查看磁盘使用率。

2023-06-05 10:39:14 809

原创 搭建服务器环境

如果是刚安装好的操作系统 先安装源里的gcc cmake make 等。

2023-06-02 10:55:28 712

原创 海量数据如何实现排行榜

在海量数据中如何去获取TOPK,或者如何查询一个数据的排名。常见的方法:mysql索引存储这种方法根据设置一个排行分数作为索引即可,但在海量数据场景下,它的查询性能变得低下,占用的内存也很高,只适合数据量不高和对性能要求不高情况下。区间排序树思路:比如存储100万个数据,以积分作为排行分数。我们可以把[0,1000000]一级区间分为两个二级区间[0,500000)和[500000,1000000],在将二级区间往下细分,直到划分21级区间为[0,1),[1,2)…这种思想二分查找和二叉查找树

2023-01-09 19:22:11 932 2

原创 常见问题解决方案

对于自行编译的库,如opus,opencv等,其自带的可执行程序在使用时有时候会报cannot open shared object file: No such file or directory的错误,事实上,相关的依赖库已经安装或编译了,这是由于大部分的自编译库都是默认存放在/usr/local/lib中的,而Linux系统通常只会去/usr/lib中寻找库文件,这就导致无法加载库文件导致报错。3、修改/etc/ld.so.conf,然后刷新。2、修改宏变量LD_LIBRARY_PATH。

2022-09-02 19:09:31 1117

转载 VirtualBox虚拟机路径迁移方法

3.最后你需要去VirtualBox里面,选择你要改的那个虚拟机右键->设置->存储里面,把下面那个带感叹号的vdi删了新增一个你现在目录下的那个就行了。只需要吧这里的”G:\新建文件夹\ubuntu16-02\ubuntu16-02.vdi”改成你的vdi文件所在目录就行。VirtualBox虚拟机文件默认存放位置在C盘,hadoop搭建完全分布需要多建立几个虚拟机,C盘就直接炸了,所以先改个默认路径吧。1.先把你的某个虚拟机的整个文件夹拷贝到你的目录下去,比如这是我拷过来的文件夹。

2022-08-22 17:57:39 2277

原创 ucontext 上下文

首先标号 (a) 的调用会将控制权转交给 fib 函数同时保存状态,由于 fib_ctx 之前是由 makecontext 函数修改过的,所以这次跳转会跳转到标号 (1) 这个位置。如果 fib_res

2022-08-18 00:52:28 395

原创 CMake常用语法

同时会引入两个变量 demo_BINARY_DIR / PROJECT_BINARY_DIR, PROJECT_SOURCE_DIR/demo_SOURCE_DIR

2022-07-08 19:02:56 945 2

原创 Ubuntu18.04启动出现Starting Gnome Display Manager问题

解决ubuntu18.04启动时出现Starting Gnome Display Manager问题

2022-07-05 10:38:32 3167

原创 VirtualBox的Ubuntu18.04虚拟硬盘扩容,图形化操作

Ubuntu18.04对虚拟硬盘扩容,不需要安装其他插件,简单有效

2022-07-01 19:46:47 306

原创 Git&GitHub基本操作

对团队中参与开发的人员进行权限控制。 对团队外开发者贡献的代码进行审核——Git 独有。查看修改人、修改时间、修改内容、日志信息。 将本地文件恢复到某一个历史状态。 分支管理 允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。...

2022-06-03 22:38:36 219

原创 Ubuntu20.04对vimplus的配置

vimplus的配置需要准备的安装包步骤需要准备的安装包1、vimplus在ubuntu20.04终端上输入命令sudo git clone https://gitee.com/chxuan/vimplus.git2、vim.zip包https://wwt.lanzouj.com/ivmrjyltnif通过本地下载,在传输到ubuntu步骤1、 进入vimplus目录,输入命令./install.sh过程中,需要选择python2/3,输入3之后就进入到了一下界面这时候输入c

2022-05-29 12:20:10 807

原创 MYSQL的优化和原理分析

MYSQL的优化和原理分析索引为什么要使用索引索引是什么索引的存储位置索引的分类和创建主键索引:普通索引:唯一索引:联合索引(组合索引):全文索引:B树和B+树InnoDB 和 MYISAM区别联合索引和最左前缀法则索引适合创建和不适合创建索引的常规面试题explain性能分析id(查询序列号)select_typepossible_keyskeyrefrows索引为什么要使用索引为了提高查询性能。当数据库表中的数据量比较大,不创建索引的话,查询记录会进行全表扫描,查询性能较差。当给某个字段创建索引

2022-05-26 11:09:05 275

原创 经典的七大排序

七大排序插入排序选择排序未优化前版本优化版本插入排序什么是插入排序?指的是当插入第n个元素时,之前的n-1个元素已经有序了,将第n个元素和前面的n-1个元素比较,找到适合插入的位置,插入点后面的元素都向后挪动一个位置,空出来的位置直接插入即可。时间复杂度:最坏的情况下,每次插入一个元素,都需要挪动全部元素,故有1+2+3+…+n=n*(n+1)/2。即为O(n^2)空间复杂度:在原有的数组挪动即可,不需要额外的空间。O(1)例子:待插入元素:5 2 3 6 1 4 8第一次插入:5第

2022-05-01 22:24:11 344

原创 JavaScript的JSON

JavaScript的JSONJSONeval函数创建JSON对象和访问JSON对象的属性JSON对象的嵌套JSON的案例正则表达式表单提交案例JSONeval函数 <script type="text/javascript"> window.eval("var i = 1000") console.log(i); </script>创建JSON对象和访问JSON对象的属性<!DOCTYPE html><html><h

2022-04-26 17:03:35 1758 4

原创 JavaScript的DOM和BOM操作

JavaScript的DOM和BOM操作周期性函数调用窗口的打开和关闭alert和confirm将窗口设置为顶级窗口历史记录(前进和后退)周期性函数调用<!DOCTYPE html><html><head> <title>周期性函数调用</title> <meta charset="utf-8"></head> <body> <script type="text/javascrip

2022-04-26 13:05:39 1232

原创 CSS的基本知识

CSS内联定义方式样式块方式标签选择器id选择器类选择器链接外部独立的样式表选择器的优先级隐藏样式文本装饰样式内联定义方式<html> <head> <title>内联定义方式</title> <meta charset="utf-8"> </head> <body> <h1> CSS的入门教程</h1> <div id

2022-04-23 15:25:21 1393 12

原创 JavaScript的基本知识

JavaScript前言HTML嵌入JS方法注释方式标识符、变量、关键字for等函数全局变量和局部变量函数不能重载数据类型UndefinedNumberStringBooleanNullObject类的定义和创建对象和使用数组== 、===区别,null和NaN、Undefine的区别常见事件获取HTML中的对象节点事件注册方式onload事件对代码执行顺序的影响前言JavaScript是一门脚本语言。简称JSHTML嵌入JS方法第一种办法:<html> <head&g

2022-04-21 17:58:21 1159 10

原创 HTML的基础知识

HTML基本格式基本标签段落标签标题字标签换行标签水平线预留格式加粗斜体字插入字删除字右上角右下角字体标签表格表格格式表格的单元格合并th标签(自动加粗、居中)表格的thead、tbody、tfoot背景图片和背景颜色input控件label文本域textarea下拉菜单表单域HTML新增的标签datalistfieldsetHTML新增的inputHTML新增的属性placeholderautofocusmultipleautocompleterequired 和 accesskeydiv和span多媒体

2022-04-21 17:57:31 416 4

原创 剑指Offer

剑指Offer用两个栈实现队列包含min函数的栈用两个栈实现队列链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例:输入:["CQueue","delete

2022-04-16 16:31:24 182

原创 前缀和算法题

前缀和剑指 Offer II 012. 左右两边子数组的和相等所有奇数长度子数组的和剑指 Offer II 012. 左右两边子数组的和相等链接:https://leetcode-cn.com/problems/tvdfij/题目描述:给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。

2022-04-08 20:35:57 79

原创 并查集算法题

并查集被围绕的区域岛屿数量被围绕的区域链接:https://leetcode-cn.com/problems/surrounded-regions/题目描述:给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。完整代码:并查集:class Solution {public: void solve(vector<vector<char>>& bo

2022-04-07 21:34:52 281

原创 STL源码详解

STL详解STL介绍空间配置器一级空间配置器二级空间配置器序列式容器vectorlistdeque适配器stackqueueheappriority_queue关联式容器setmultisetmapmultimap非标准容器hash_set(unordered_set)hash_multiset(unordered_multiset)hash_map (unordered_map)hash_multimap(unordered_multimap)常见的面试问答1、说说 vector 和 list 的区别2、

2022-04-04 16:23:51 3121

原创 动态规划算法

动态规划一、完全平方数最长递增子序列三、丑数II四、超级丑数一、完全平方数链接:https://leetcode-cn.com/problems/perfect-squares/题目描述:给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例:输入:n = 12输出:3 解释:12 = 4 + 4 + 4输入:n = 13

2022-04-02 17:21:44 639 2

原创 贪心算法题

贪心算法一、递增的三元子序列二、移掉 K 位数字三、最短无序连续子数组四、分割数组为连续子序列五、一手顺子(和上一题非常类似)六、划分字母区间一、递增的三元子序列链接:https://leetcode-cn.com/problems/increasing-triplet-subsequence/题目描述:给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] &lt

2022-03-30 19:36:16 1104

原创 2022华为软件精英挑战赛

2022华为软件精英挑战赛任务书一、背景二、题目题目介绍题目数学描述输入说明输出说明输出说明输出示例完整代码总结任务书一、背景提升用户体验的同时降低运营成本是云服务竞争力的关键。在视频直播场景中,网络成本是影响服务成本的关键因素之一,不同的流量调度方案会产生不同的网络使用成本。本赛题以华为云视频直播服务流量调度问题为基础,并进行一定的抽象、调整和简化。参赛选手需要设计高效的调度算法,在满足客户要求的前提下,通过对流量的合理调度,最小化网络使用成本。期待您的精彩解决方案。二、题目题目介

2022-03-27 20:43:22 1841 4

原创 C++的基本组件之内存池

内存池概念1:尽量减少malloc的次数2:频繁申请小块内存空间都造成空间的极大浪费3:利用new和delete运算符重载,替代系统调用4:减少malloc的次数,可在一定程度上提高效率5:用malloc申请一个大块内存,从一大块内存中,一点点分配给用户6:当一大块快用光了,再申请一大块#include <iostream>#include <malloc.h>#include <time.h>using namespace std;namespa

2022-03-23 20:53:37 2072

原创 C++11基础知识归纳

一、内存区域模型1、代码区:存放函数体的二进制代码,由操作系统进行管理,特点是共享和只读。2、全局区:存放全局变量、static修饰的静态变量、const修饰的常量。3、栈区:存放局部变量和函数传递的参数,由编译器自动进行分配和释放。4、堆区:存放动态分配的变量,需要程序员使用new,malloc分配和使用delete,free释放,若不释放一般情况下程序运行完由操作系统回收内存不同区域的意义赋予了变量的不同生命周期,提供给程序员灵活地编程。二、引用2.1、意义给变量起别名用法数据类型

2022-03-21 17:36:17 1278 3

原创 计算机网络

OSI五层模型文章目录前言一、应用层DNS协议HTTP协议二、使用步骤1.引入库2.读入数据总结前言计算机网络概念:计算机网络是利用通信线路和通信设备,将地理位置不同的、功能独立的多台计算机互连起来,以功能完善的网络软件来实现资源共享和信息传递,就构成了计算机网络系统。一、应用层DNS协议HTTP协议HTTP是超文本传输协议。它是基于TCP协议的应用层传输协议,即是客户端和服务端的数据传输一种规则。HTTP协议本身是一种无状态的协议(无状态:是指每一个HTTP请求的发送、传输、接收均相互

2022-03-12 18:27:37 4509 1

原创 C++的next_permutation(下一个排列)和prev_permutation(上一个排列)函数

聊聊C++的排列函数,它们运用了数学的全排列。排列函数有next_permutation(iterator start,iterator end)和prev_permutation(iterator start,iterator end)。一、next_permutation函数函数原型:#include <algorithm>bool next_permutation(iterator start,iterator end) // 默认升序排列//cmp为自定义的排列方式//boo

2022-03-10 11:22:37 864

原创 常见的算法题

一、回文日期链接:https://www.lanqiao.cn/problems/498/learning/2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。有人表示 20200202 是 “千年一遇” 的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021 年 12 月 2 日。也有

2022-03-08 17:38:42 86

原创 图的最短路径

最短路径是图的一个演变算法。下面主要是构造最短路模板(构建邻接矩阵,套Dijkstra模板)。首先是构建邻接矩阵,最短距离数组,标记节点数组。完整代码:#include <bits/stdc++.h>#include <algorithm>#include <cmath>using namespace std;#define ll long long#define INF 0x3f3f3f3f#define N 2025int edges[N][N

2022-03-07 12:09:59 76 2

原创 背包系列详解

一、01背包

2022-03-03 14:49:29 633 2

原创 腾讯后端面试算法题(十)

一、打家劫舍系列打家劫舍I链接:https://leetcode-cn.com/problems/house-robber/题目描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋

2022-02-28 21:29:03 651

原创 腾讯后端面试算法题(九)

一、平衡二叉树链接:https://leetcode-cn.com/problems/balanced-binary-tree/题目描述:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。完整代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left;

2022-02-27 22:54:37 458

原创 腾讯后端面试算法题(八)

一、二叉树的层序遍历链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/题目描述:给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。完整代码:解法一:前序遍历 + 高度/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *

2022-02-27 15:56:21 459

空空如也

空空如也

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

TA关注的人

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