自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浅谈Unity 碰撞机Collider的一些使用心得

1.查看物体的尺寸以及碰撞组件的检测范围以BOX Collider为例,首先创建一个Cube,Scale = (1,1,1)这里的Scale是localScale,可以通过打印查看Vector3 size = transform.localScale;Debug.Log("localScale" + size.ToString());注意,当该Cube挂载在某个父物体中,由于父物体可能存在缩放,所以该子物体的Scale是相对于父物体,不是真实尺寸,此时子物体的尺寸要通过los

2022-05-07 23:41:34 2422

原创 算法备忘录~二分法搜索旋转排序数组的元素

题目:81. 搜索旋转排序数组 II已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,4,4,5,6,6,7] 在下标 5 处经旋转后可能变为 [4

2021-08-27 11:00:03 197

原创 算法备忘录~翻转单词顺序

题目:剑指 Offer 58 - I. 翻转单词顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。示例 1:输入: "the sky is blue"输出:"blue is sky the"示例 2:输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,...

2021-08-23 11:09:23 235

转载 算法备忘录~滑动窗口求解和为s的连续正数序列

题目:剑指 Offer 57 - II. 和为s的连续正数序列输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <= 10^5思路:滑动窗口滑动窗

2021-08-22 21:45:29 130

原创 算法备忘录~求最大公约数和最小公倍数

题目: 给定两个数,求两者的最大公约数和最小公倍数示例:思路: 对于最大公约数的求解有多种方法,这里仅提出一种,以下部分图文参考了chen_zan_yu_大佬的求最大公约数的三种方法中的辗转相除法,仅作为学习使用 对于最小公倍数,它与最大公约数的乘机为所求数之积。即x*y=最小公倍数*最大公约数 因此,题目转化为只要求解出最大公约数,即可求解出最小公倍数辗转相除法:#include <iostre...

2021-08-19 21:51:13 1456

原创 算法备忘录~判断是否为素数

题目: 编写一个函数,判断一个数是否为素数,并返回结果素数定义:(质数prime number)定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,素数有无穷多个。思路1: 用目标数依次对从2 ~ n-1遍历的每个数作取余操作(注意不包括1和其本身),如果取余结果为零,说明存在其他的因数,返回false思路1代码实现:时间复杂度 O(n)int isPrime(int k){ int j; for ( j=...

2021-08-19 21:22:32 263

原创 算法备忘录~翻转单链表(ACM模式)

题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点 链表结构typedef struct Node{ int val; struct Node* next;}pNode;示例:核心代码:while(curNode) { pNode* nextNode = curNode->next;//先保存当前结点的下一个结点地址 curNode->next = preNode;//修改当...

2021-08-19 20:59:54 1436

原创 算法备忘录~删除单链表第K个结点(ACM模式)

题目:删除一个链表的第K个结点,在ACM模式下需要自行创建链表,相对于leetcode来说有所不同,记录一下,整体不难,后续有空再来完善。注意事项:k = 1时需要删除头节点 k 大于链表长度时不删除,报错代码实现:#include<iostream>using namespace std;typedef struct Node{ int val; struct Node* next;}pNode;int k;pNode* Input...

2021-08-19 20:42:10 587

转载 算法备忘录~计数排序

01 计数排序算法概念计数排序不是一个比较排序算法,该算法于1954年由 Harold H. Seward提出,通过计数将时间复杂度降到了O(N)。02 基础版算法步骤第一步:找出原数组中元素值最大的,记为max。第二步:创建一个新数组count,其长度是max加1,其元素默认值都为0。第三步:遍历原数组中的元素,以原数组中的元素作为count数组的索引,以原数组中的元素出现次数作为count数组的元素值。第四步:创建结果数组result,起始索引index。第五步:遍历co.

2021-08-15 18:46:55 158

原创 算法备忘录~单调栈解决接雨水和柱状图最大矩形两大问题

单调栈:单调栈中存放的数据是有序的,可分为单调递增栈和单调递减栈单调递增栈:单调递增栈就是从栈底到栈顶数据是从大到小 单调递减栈:单调递减栈就是从栈底到栈顶数据是从小到大典型应用1:接雨水给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情

2021-08-14 18:51:21 186

转载 vim 复制/剪切/粘贴/撤销操作

【背景知识】vim 有 12 个粘贴板,分别是 0、1、2、...、9、a、“、+;用 :reg 命令可以查看各个粘贴板里的内容。在 vim 中简单用 y 命令只是复制到 "(双引号)粘贴板里,同样用 p 命令粘贴的也是这个粘贴板里的内容;要将 vim 的内容复制到某个粘贴板,需要先退出编辑模式,再进入命令模式后,选择要复制的内容,然后按 "Ny(注意带引号)完成复制,其中 N 为粘贴板号(注意是按下 双引号 + 粘贴板号 + y),例如要把内容复制到粘贴板 a,选中内容后按 "ay 就可以了,有 2

2021-08-13 21:43:39 3739

原创 算法备忘录~接雨水(动态规划)

题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5] 输出:9思路1:动态规划1、沿Y轴按列计算,这样宽度为1,求面积只需要求

2021-08-13 14:13:34 356

原创 算法备忘录~计算二进制中1的个数

题目编写一个函数,输入是一个有符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011中,共有三位为 '1'。示例 2:输入:00000000000000000000000010000000输出:1解释:输入的二进制串 000000000000000000000000.

2021-08-12 18:23:29 196

转载 指针常量和常量指针的区别

指针常量指针常量:顾名思义它就是一个常量,但是是指针修饰的。格式为:int * const p;//指针常量在这个例子下定义以下代码:int a,b;int * const p=&a; //指针常量//那么分为一下两种操作*p=9;//操作成功p=&b;//操作错误因为声明了指针常量,说明指针变量不允许修改。如同次指针指向一个地址该地址不能被修改,但是该地址里的内容可以被修改常量指针常量指针:如果在定义指针变量的时候,数据类型前用const修饰,被定

2021-08-11 14:24:30 126

原创 算法备忘录~顺时针打印矩阵

剑指 Offer 29. 顺时针打印矩阵输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix =[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 1000 <=..

2021-08-10 15:28:07 82

原创 算法备忘录~栈和队列的相互实现

1、两个栈实现一个队列思路: 一个栈作为输入栈,一个栈作为输出栈,入队的时候压进输入栈,出队的时候要颠倒一下顺序,因此判断输出栈是否为空,为空的话就先把输入栈的数据弹出压进输出栈,然后从输出栈弹出数据,即为先进先出的顺序。代码实现:class MyQueue {public: stack<int> stIn; stack<int> stOut; /** Initialize your data structure here...

2021-08-08 09:54:37 139

转载 算法备忘录~双指针找环入口

第142题.环形链表II题意:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回 null。为了表示给定链表中的环,使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。「说明」:不允许修改给定的链表。思路这道题目,不仅考察对链表的操作,而且还需要一些数学运算。主要考察两知识点: 判断链表是否环 如果有环,如何找到这个环的入口 判断链表是否有环可以使用快慢指针法, 分别定义 ..

2021-08-07 11:20:05 335

原创 算法备忘录~双指针逆序移除元素(接近满分)

27. 移除元素给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也...

2021-08-07 10:34:39 162

原创 linux系统编程~gcc、vim、make使用

1、gcc、vim、make使用(1)gcc和vim的安装(2)编辑器vim的使用要保存需要root权限,需要切换账户,su root ,然后输入密码123或123456①vim基础使用例如切换模式②vim配置脚本vim的功能可以通过修改配置文件实现,例如缩进距离,历史指令记录数等等,建议是先复制一份到家目录中,然后再修改,这样的话不至于对所有用户产生影响cp /etc/vimrc ~/.vimrc​ vim ~/.vimrc③vim的一些便携式操作

2021-08-05 18:04:49 276

原创 计算机网络~Ping命令工作原理详解

Ping命令的应用与原理ping 是基于ICMP协议工作的,所以要明白 ping 的工作,首先我们先来熟悉ICMP 协议。ICMP 全称是Internet Control Message Protocol,也就是互联网控制报文协议。ICMP主要的功能包括:确认 IP 包是否成功送达目标地址、报告发送过程中 IP 包被废弃的原因和改善网络设置等。ICMP 报文是封装在 IP 包里面,它工作在网络层,是 IP 协议的助手。...

2021-07-20 20:30:50 1041 1

原创 计算机网络~集线器 交换机 路由器 的区别

集线器:集线器(Hub)是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。 1.工作在物理层:集线器是运作在OSI模型中的物理层。 2.广播发送:集线器中,帧被传递或“广播”到它的每个端口,集线器无法区分帧应该发送到哪个端口。将它传递到每个端口可以确保它到达预期的目的地。 3.集线器不能划分冲突域和广播域。交换机:交换机(Switch)意为“开关”,是一种用于电(光)信号转发的网络设备。它...

2021-07-20 19:59:39 360

原创 算法备忘录~完全背包问题

题目:有N件物品和⼀个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有⽆限个(也就是可以放⼊背包多次),求解将哪些物品装⼊背包⾥物品价值总和最⼤。完全背包和01背包问题唯⼀不同的地⽅就是,每种物品有⽆限件。回顾一下01背包的核心代码for(int i = 0; i < weight.size(); i++) { // 遍历物品 for(int j = bagWeight; j &gt...

2021-07-18 12:24:36 382

原创 算法备忘录~01背包问题

题目:有N件物品和⼀个最多能被重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每 件物品只能⽤⼀次,求解将哪些物品装⼊背包⾥物品价值总和最⼤。示例:思路: 动态规划五部曲: 1.确定dp数组以及下标的含义使⽤⼆维数组,即dp[i][j] 表示从下标为[0-i]的物品⾥任意取,放进容量 为j的背包,价值总和最⼤是多少。2. ...

2021-07-16 11:18:08 2048

空空如也

空空如也

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

TA关注的人

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