自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

G_Super_Mouse的博客

大耗子的博客

  • 博客(217)
  • 资源 (3)
  • 收藏
  • 关注

原创 关于本博客和发表的文章以及版权声明

这里将发布的文章有这几类,分别是“C/C++ , python, html, linux, mysql”;包括但不限于这几种类别,可能衍生出的各文章,标明原创的版权均归本人所有,任何人或团体、机构全部转载或者部分转载、摘录,请保留本博客链接或标注来源。 这里将不定期发布一些文章,仅在闲暇时刻挑选发布一些技术上分享,如对文章有任何意见或者建议,欢迎评论。...

2018-12-10 16:06:26 878 1

原创 8大常用排序写法

八大排序的理解个人对八大排序的理解,如有错误请指出新人第一次写博客,排版可能稍微不好看,请谅解 代码最简单,但效率低冒泡:相邻比较思想选择:选择最小的思想 代码简单,排序快速,常用插入:与前面比较,大于自己,前移希尔:在插入的基础上做出跨度 使用递归思想,排序快速,代码复杂快速:在逻辑切分数组后将第一个元素作为参考值进行左右在切分,递归思想归并...

2018-08-06 18:44:58 1165

原创 在physx中创建射线ray,并获取碰撞点

在physx中创建射线ray,并获取碰撞点通过raycastSingle函数去获取发射的射线是否会碰到物体,不需要特殊处理的可以不使用回调。不用回调的版本// origin是起点, unitDir是方向int RayCaseSingle(PxVec3 &origin, PxVec3 &unitDir){ PxRaycastHit hitInfo; // 返回的点,法向量信息等都在这里 PxReal maxDist = FLT_MAX; // 最大射线距离 //PxHitFla

2021-05-28 19:21:37 483 2

原创 physx中ray不碰撞某些物体的方法

设置过滤类型const PxFilterData collisionGroupIgnore(0, 0, 0, 1); // 碰撞会被忽略的组const PxFilterData collisionGroup(1, 0, 0, 0); // 需要碰撞的组给shape设置类型void setShapeFilterData(PxRigidActor * actor, PxFilterData &data){ PxShape* shapes = NULL; actor->getSh

2021-05-28 19:19:22 353

原创 判断位置是否会发生碰撞

核心函数整理physx的函数解释在下面。// 从actor中获取第一个shapePxShape * getShapeByActor(PxRigidActor *actor){ if (!actor) return NULL; const PxU32 numShapes = actor->getNbShapes(); if (numShapes <= 0) { cout << "test Shape num is <= 0" << endl

2021-05-28 19:17:32 445

原创 在physx中创建射线raycase,并获取碰撞点

给物体创建射线ray通过raycastSingle函数去获取发射的射线是否会碰到物体,不需要特殊处理的可以不使用回调。不用回调的版本// origin是起点, unitDir是方向int RayCaseSingle(PxVec3 &origin, PxVec3 &unitDir){ PxRaycastHit hitInfo; // 返回的点,法向量信息等都在这里 PxReal maxDist = FLT_MAX; // 最大射线距离 //PxHitFlag::eMESH_AN

2021-05-25 18:10:21 425 1

原创 physx中加载obj创建mesh的方法

如何加载三角片面的obj文件到physx中obj中的会在physx中的重要内容介绍在obj文件中,physx加载PxTriangleMeshDesc最终要的两个数据,一个是顶点信息,一个是三角片面的三个顶点索引。相对的obj中,这个顶点信息在obj文件中是每行v开头的后面的数据,分别代表 x,y,z。例如v 3.419436 0.06810839 -1.137559 ,x= 3.419436, y=0.06810839 , z= -1.137559面的信息是f打头的数据,数据如下:f 1598

2021-05-24 18:31:29 721 3

原创 physx中判断actor是否会发生碰撞

一、物理碰撞模拟方法通过模拟一个真实的碰撞,但是不体现碰撞的特性,通过回调的方式来获取到对应的actor的指针来判断是否碰撞,但是要忽略掉当前的碰撞。设置分类const PxFilterData collisionGroupIgnore(0, 0, 0, 1); // 分类自己怎么定义都可以设置形状shape中的分类,方便在filtershape函数中做过滤PxRigidDynamic* createIgnoreDynamic(const PxTransform& t, cons

2021-05-24 17:50:40 591

原创 c++ chrono库做时间统计,毫秒级别封装

参考博客https://www.cnblogs.com/jinxiang1224/p/8468162.html根据chrono库的,封装一个毫秒级别的时间统计函数当然,这个库最高可以统计到纳秒级别封装#include <iostream>#include <chrono> namespace { typedef std::chrono::steady_clock STEADY_CLOCK; STEADY_CLOCK::time_point t1 = STEADY

2021-05-07 17:53:58 725

原创 c#中使用Stopwatch工具类统计程序运行时间,精确度微秒

c#统计程序运行时间方法c#中stpwth的ElapsedTicks是程序执行的时钟滴答。通过获取工具类的频率Frequency来计算与真实时间的比值。通过这个比值得到真实的时间下面是时钟滴答与微妙us的比值计算方法。double usRatio = (double)(1000 * 1000) / Stopwatch.Frequency;public class statisticsTest{ // 统计时间要用的工具 private Stopwatch stpwth; // 存储每次统计

2021-04-30 10:54:21 773

原创 leetcode 404. 左叶子之和

题目: 404. 左叶子之和404. 左叶子之和难度简单计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24解题思路递归判断该结点是不是叶子,同时传入参数告诉该结点,是不是左子树。同时满足叶子结点且是左子树,则加入总和中。代码class Solution {private: int sum;public: int sumOfLeftL

2021-02-21 12:32:58 91

原创 leetcode 807. 保持城市天际线

题目: 807. 保持城市天际线807. 保持城市天际线难度中等在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度。 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度。 高度 0 也被认为是建筑物。最后,从新数组的所有四个方向(即顶部,底部,左侧和右侧)观看的“天际线”必须与原始数组的天际线相同。 城市的天际线是从远处观看时,由所有建筑物形成的矩形的外部轮廓。 请看下面的例子。建筑物高度可以增加的最大总和是多少?例子:输入: grid = [[3,0,8,4]

2021-02-21 11:18:18 138

原创 leetcode 543. 二叉树的直径

题目: 543. 二叉树的直径543. 二叉树的直径难度简单613收藏分享切换为英文接收动态反馈给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。解题思路一个树中最长的结点链接是左

2021-02-21 10:40:45 89

原创 leetcode 17. 电话号码的字母组合

题目: 17. 电话号码的字母组合17. 电话号码的字母组合难度中等给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits = "2"输出:["a","b

2021-02-20 21:31:36 143

原创 leetcode 113. 路径总和 II

题目: 113. 路径总和 II113. 路径总和 II难度中等426收藏分享切换为英文接收动态反馈给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \

2021-02-20 20:49:39 126

原创 leetcode 112. 路径总和

题目: 112. 路径总和112. 路径总和难度简单513收藏分享切换为英文接收动态反馈给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true示例 2:[外链图片转存失败,源

2021-02-20 18:43:50 115

原创 leetcode 226. 翻转二叉树

题目: 226. 翻转二叉树226. 翻转二叉树难度简单翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1解题思路递归该树,并将左右子树交换即可。代码class Solution {public: TreeNode* invertTree(TreeNode* root) { if (!root) r

2021-02-20 18:29:39 99

原创 leetcode 232. 用栈实现队列

题目: 232. 用栈实现队列232. 用栈实现队列难度简单请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你只能使用标准的栈操作 —— 也就是只有 pus

2021-02-20 18:19:05 94

原创 leetcode 59. 螺旋矩阵 II

题目: 160. 相交链表59. 螺旋矩阵 II难度中等300收藏分享切换为英文接收动态反馈给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]提示:1 <= n <= 20解题思路首先初始化ans数组大小。设置一个visit数组,代表是否走过该位置。然后通

2021-02-20 17:18:09 145

原创 leetcode 160. 相交链表

题目: 160. 相交链表160. 相交链表难度简单编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表**:**在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始

2021-02-20 16:53:28 90

原创 leetcode 39. 组合总和

题目: 39. 组合总和39. 组合总和难度中等给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]示例 2:输入:ca

2021-02-20 15:51:11 81

原创 leetcode 153. 寻找旋转排序数组中的最小值

题目: 153. 寻找旋转排序数组中的最小值153. 寻找旋转排序数组中的最小值难度中等假设按照升序排序的数组在预先未知的某个点上进行了旋转。例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] 。请找出其中最小的元素。示例 1:输入:nums = [3,4,5,1,2]输出:1示例 2:输入:nums = [4,5,6,7,0,1,2]输出:0示例 3:输入:nums = [1]输出:1提示:1 <= nums.length &l

2021-02-20 11:38:50 95

原创 leetcode 169. 多数元素

## 题目: 169. 多数元素#### [169. 多数元素](https://leetcode-cn.com/problems/majority-element/)难度简单给定一个大小为 *n* 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 **大于** `⌊ n/2 ⌋` 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。**示例 1:**```输入:[3,2,3]输出:3```**示例 2:**```输入:[2,2,1,1,1,.

2021-02-20 09:46:19 150

原创 leetcode 215. 数组中的第K个最大元素

题目: 215. 数组中的第K个最大元素215. 数组中的第K个最大元素难度中等在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。通过次数259,994提交次数401,273解题思路快排

2021-02-19 23:28:12 82

原创 leetcode 21. 合并两个有序链表

题目:21. 合并两个有序链表21. 合并两个有序链表难度简单将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <

2021-02-19 22:43:27 94

原创 leetcode 103. 二叉树的锯齿形层序遍历

题目:103. 二叉树的锯齿形层序遍历103. 二叉树的锯齿形层序遍历难度中等给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层序遍历如下:[ [3], [20,9], [15,7]]解题思路通过两个栈,分别存储当前层的数据,还有下一层的数据。因

2021-02-19 19:00:05 85

原创 leetcode 958. 二叉树的完全性检验

题目:958. 二叉树的完全性检验958. 二叉树的完全性检验难度中等给定一个二叉树,确定它是否是一个完全二叉树。百度百科中对完全二叉树的定义如下:若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(注:第 h 层可能包含 1~ 2h 个节点。)示例 1:输入:[1,2,3,4,5,6]输出:true解释:最后一层前的每一层都是满的(即,结点值为 {1} 和 {2,3} 的两层),且最后一层

2021-02-19 13:42:28 116

原创 leetcode 695. 岛屿的最大面积

题目:695. 岛屿的最大面积695. 岛屿的最大面积给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,

2021-02-19 13:13:08 68

原创 leetcode 146. LRU 缓存机制

题目:146. LRU 缓存机制146. LRU 缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键

2021-02-19 10:46:41 97

原创 leetcode 129. 求根到叶子节点数字之和

题目:129. 求根到叶子节点数字之和129. 求根到叶子节点数字之和给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 12.从根到叶子节点路径 1-&g

2021-02-18 23:33:18 104

原创 leetcode 121. 买卖股票的最佳时机

题目:121. 买卖股票的最佳时机121. 买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时

2021-02-18 22:31:53 62

原创 leetcode 25. K 个一组翻转链表

题目:K 个一组翻转链表25. K 个一组翻转链表给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5解题思路例如:1->2-

2021-02-18 22:12:32 77

原创 leetcode 105. 从前序与中序遍历序列构造二叉树

从前序与中序遍历序列构造二叉树105. 从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7解题思路通过递归的方法,不断缩小树的范围,将树拆解到叶子,再将叶子赋值到左或者右子树上即可。(第一次写题解,多多谅解,

2021-02-18 15:10:29 69

原创 leetcode 3. 无重复字符的最长子串

无重复字符的最长子串3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注

2021-02-18 15:09:37 57

原创 手撕堆排序

手撕堆排序实现思路:首先初始化堆,进行下沉操作,从最后一个叶子节点的父节点开始,将小数据下沉下去,做成一个最大堆(小到大做最大堆,大到小做最小堆)然后堆顶与未排序数组位置元素交换,未排序数组缩减一个元素。由于将元素交换到堆顶,打破了堆的性质,将堆顶的元素重新下沉,做出保持堆的性质。重复操作第二步,直至未排序数组元素个数为1,因为1个元素就不需要排序了。排序结束。写的不好请指正,嘻嘻_#include <iostream>#include <string.h>#in

2021-02-17 17:26:35 196

原创 什么是布隆过滤器

1. 什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。2. 实现原理实现的结构是bitmap结构,通过对数据进行多次hash得到的结果,对其对应的bitmap位置置为1。例如数据A三次hash的结果为1,5,7。那么

2021-02-17 13:26:18 244 1

原创 悲观锁与乐观锁以及乐观锁的实现

悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每 次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传 统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写 锁等,都是在做操作之前先上锁。乐观锁顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所 以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于 write_conditio

2021-02-17 13:25:36 305

原创 单链表实现快排

单链表实现快排该方法通过前后指针的方式实现。通过后指针不停的走,获取数据只要小于哨兵值,就交换到前指针。所以该方法也就不需要链表的前序节点。下面是具体实现。#include<iostream>#include<ctime>using namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};ListNode *ghead

2021-02-17 13:23:42 169

原创 面经大杂烩1

搜索树、平衡树,都有哪些特点呢?平衡树(Balance Tree,BT) 指的是,任意节点的子树的高度差都小于等于1。常见的符合平衡树的有,B树(多路平衡搜索树)、AVL树(二叉平衡搜索树)等。二叉搜索树的特点:对于树中的每个节点X,它的左子树中所有关键字值小于X的关键字值,而它的右子树中所有关键字值大于X的关键字值。各种排序算法及其复杂度排序方法时间复杂度(平均)时间复杂度(最坏)时间复杂度(最好)空间复杂度稳定性复杂性插入排序O(n2)O(n2)O(n)O(

2021-02-04 08:34:13 237

原创 mysql的sql优化

sql优化对查询进行优化, 应尽量避免全表扫描, 首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中使用!=或<>操作符, 否则将引擎放弃使用索引而进行全表扫描。应尽量避免在 where 子句中对字段进行 null 值判断, 否则将导致引擎放弃使用索引而进行全表扫描, 如:select id from t where num is null;#可以在 num 上设置默认值 0, 确保表中 num 列没有 null 值,

2021-02-02 08:58:30 62

powerinfo-指定cpu.sh

获取linux下cpu占用率和内存占用率,可以查看出这段时间内,cpu的巅峰值和低谷值,测试代码对cpu和内存的依赖关系.

2020-09-17

powerinfo-server.sh

获取linux下cpu占用率和内存占用率,可以查看出这段时间内,cpu的巅峰值和低谷值,测试代码对cpu和内存的依赖关系.

2020-09-17

汇编期末综合实验.rar

学生成绩管理系统,完成功能由学生成绩信息录入,按成绩排序输出学生的名字和排名等信息,里面由各种注释,包括实验报告

2019-06-16

空空如也

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

TA关注的人

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