- 博客(16)
- 收藏
- 关注
原创 static 关键字作用
static 关键字的作用C/C++修饰全局变量时,表明一个全局变量只对定义在同一文件的函数可见。修饰局部变量时,表明该变量的值不会因为函数终止而丢失。修饰函数时,表明该函数只在同一文件中调用。C++(与类相关)修饰类的数据成员,表明对该类所有对象这个数据成员都只有一个实例。也就是说这个实例归所有对象所有。用 static 修饰不访问非静态数据成员的类成员函数。这意味着一个静态成员函数只能访问它的参数、类的静态数据成员和全局变量。为什么静态成员函数只能访问静态成员变量?
2021-08-19 16:07:48 176
原创 2021-07-20 原地反转栈
记录!!!太菜了,挫败感好强。今晚字节算法题:给一个栈 原地反转,不可以使用新的额外空间(临时变量不算)。主要思路:递归,递归,还是 tm 的递归!!!void reverse(stack<int>st){ if(st.size()==1 ||st.empty()) return; if(st.size()==2){ int t1=st.top(); st.pop(); int t2=st.top();
2021-07-20 23:26:23 317
原创 Point Cloud Transformer(PCT)阅读翻译
PCT: Point Cloud Transformer1. Introductiontransformer是一种 encoder-decoder结构,包含了三个模块:输入词嵌入,位置(顺序)编码和self-attention 。其中self-attention是核心组件,基于全局上下文的输入特征,生成精确的 attention 特征。首先,self-attention 将输入词嵌入和位置编码的总和作为输入,通过训练有素的线性层为每个单词计算三个向量:query,key 和 value。然后,可以通过
2021-01-07 12:03:01 5057 1
原创 剑指 offer32(一、二、三)
剑指 Offer 32 - I. 从上到下打印二叉树思路:利用双端队列,每次从双端队列的队头取出节点,如果该节点存在左子树和右子树,则加入队尾。 vector<int> levelOrder(TreeNode* root) { if(root==nullptr) return {}; vector<int>res; deque<TreeNode*>dequeTreeNode; d
2020-12-29 09:20:45 163
原创 剑指 Offer 07. 重建二叉树
剑指 Offer 07. 重建二叉树输入二叉树的前序和中序遍历,重建二叉树。假设输入的前序遍历和中序遍历都不包含重复的数字。例如:前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回的二叉树: 3 / \ 9 20 / \ 15 7前序遍历的第一个元素为树的根节点 node 的值;在中序遍历中搜索根节点 node 的索引,可将中序遍历划分为[左子树|根节点|右子树]。根据中序遍历中的左
2020-12-29 09:19:13 66
原创 剑指offer16
剑指 Offer 16. 数值的整数次方对于这个问题,首先考虑:底数为 1,指数为任何数结果都为 1;指数为 0,底数为任何数时结果都为 1;如果指数n为负数呢?可以转化成底数为原底数的相反数的计算。另外,需要考虑如何计算整次方。如果让 n 个底数逐个相乘,复杂度太大。这个时候,可以考虑二分法。n 为奇数,xn=xn/2∗xn/2∗xx^n=x^{n/2}*{x^{n/2}}*xxn=xn/2∗xn/2∗x;n为偶数,xn=xn/2∗xn/2x^n=x^{n/2}*x^{n/2}xn=x
2020-12-24 02:44:48 202
原创 剑指 offer20
剑指 Offer 20. 表示数值的字符串请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、"-1E-16"、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、"±5"及"12e+5.4"都不是。首先,我们可以看到,对于一个字符串,可能存在小数点,正负号,指数符号,数值。并且在字符串的开头和末尾部分还可能有若干个空格。因此,对于一个字符串,首先要略过开头和末尾的空格。bool isNumber(st
2020-12-24 02:44:35 345
原创 剑指 offer21
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面双指针设置双指针,left 指向 数组的开始,right 指向数组末尾位置。对于 left,从前往后找,找到第一个偶数的位置;对于 right,从后往前找,找到第一个奇数的位置;当 left<right时,交换这两个位置的元素,再继续进行。vector<int> exchange(vector<int>& nums) { int left=0,right=nums.size()-1;
2020-12-24 02:44:02 445 2
原创 用最少数量的箭引爆气球问题(leetcode452)
题目描述:在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引爆
2020-11-23 19:37:30 93
原创 根据身高重建队列问题(leetcode第406题)
406. 根据身高重建队列假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]思路:对于两组数据 person1和 person2,有两种情况:person
2020-11-23 17:41:32 273
原创 三数之和问题(leetcode15)
15. 三数之和找出一个数组中是否存在三个元素a,b,c,使得a,b,c=0。找出满足条件切 a,b,c不重复的三元组。找到的三元组也不能重复。数组长度<3,不存在这样的三元组。对数组进行排序,遍历数组,当前元素位置为 i,设定左右指针,左指针 lll 指向第一个比当前元素的大的位置,右指针 rrr 指向数组末尾的一个位置。如果 nums[i]+nums[l]+nums[r]==0, 这个时候如果要继续走下去,需要消除重复的情况。如果当前 nums[l]=nums[l+1] 或者 num
2020-11-23 17:39:50 195
原创 435.无重叠区间问题
435. 无重叠区间首先看题目:给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。输入: [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。输入: [
2020-11-23 15:35:00 207
原创 [论文阅读] PointRGCN:Graph Convolution Networks for 3D Vehicles Detection Refinement
[论文阅读] PointRGCN:Graph Convolution Networks for 3D Vehicles Detection Refinement总结:利用图卷积网络(GCN)进行三维物体检测的开创性工作。引入了两个模块来使用图卷积来细化物体提议框。第一个模块R-GCN利用提议框中包含的所有点来实现每个提议框的特征聚合。 第二个模块C-GCN融合来自所有提议框的每帧信息,通过利用上下文回归精确的对象框。Abstract提出了PointRGCN:基于图表示的图卷积网络的3D目标检测方法,直
2020-11-19 16:08:40 972
原创 最短单词距离(243、244、245)
LeetCode最短单词距离问题(243、244、245)243. 最短单词距离 给定一个单词列表和两个单词 word1 和 word2,返回列表中这两个单词之间的最短距离。可以假设 word1 不等于 word2,并且 word1 和 word2 都在列表里。暴力法遍历数组找到 i1 和 i2 在数组中所有出现的位置,并检查∣i1−i2∣|i_1-i_2|∣i1−i2∣是否比当前记录的最小值要小。只遍历一次我们可以记录两个下标 i1 和 i2 来显著提高暴力的时间复杂度,我们保存
2020-11-06 01:24:42 1041
原创 序列容器类型
序列容器类型vectorlist双向链表。与 vector 区别在于,list 任何位置的插入和删除都是固定时间的(vector 在除了结尾处插入和删除都是线性时间,结尾处固定时间)。不支持数组表示法和随机访问。与矢量迭代器不同,从容器中插入和删除后,链表迭代器指向的元素不变。list 成员函数函数说明复杂度void merge(list<T,Alloc>&x)将链表 x 与调用链表合并,两个链表必须已经排序连接之后,x 为空。线性时间
2020-10-22 11:47:00 107
原创 C++枚举类型Enum总结
枚举类型EnumC++的 enum 工具提供了一种创造符号变量的方式,可以替代 const。enum spectrum{red,orange,yellow,green,blue,violet,indigo,ultraviolet}; spectrum称为枚举,其中的符号常量称之为枚举量。可以用枚举名来声明这种类型的变量://使用枚举名声明这种类型的变量 spectrum band;枚举变量赋值 band = blue;//valid band=2000;//invali
2020-10-22 10:40:06 297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人