c++
文章平均质量分 55
slamdunkofkd
这个作者很懒,什么都没留下…
展开
-
[面试][leetcode][c++实现][快排][归并排序][堆排序]排序算法总结
快速排序算法流程:每次随机指定一个数,一次循环找到这一个数的位置,然后递归接着找。int partition(vector<int> &nums,int left,int right){ int value = nums[left]; while(left<right){ while(left<right && nums[right]>=value) right--; while (left<ri原创 2021-07-18 17:35:40 · 114 阅读 · 1 评论 -
[leetcode215][c++实现]数组中的第K个最大元素
记录下面试高频题,数组中的第K个最大元素。这里记录用最大堆的解法,思路应为:构建一个最大堆,弹出堆顶元素,然后最大堆会自动维护,重复k次过程,就可以得到第K大的元素。时间复杂度分析:构建最大堆:O(n),删除k个:O(klogn)。首先记录一版调用api的代码#include <iostream>#include <string>#include <set>#include <cmath>#include <vector&.原创 2021-03-23 11:46:40 · 374 阅读 · 0 评论 -
目标检测阅读总结(一)之RCNN以及NMS
开始看目标检测方面论文,里面有很多经典,会在这儿记录下论文中的优点和代码中的问题,也会把别人blog比较好的观点总结。阅读顺序差不多按照:https://github.com/amusi/awesome-object-detectionR-CNN...原创 2021-02-23 11:08:51 · 425 阅读 · 0 评论 -
【Leetcode 300最长子序列】最优解的总结
题目:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是[2,3,7,101],它的长度是 4以上来自leetcode链接:https://leetcode-cn.com/problems/longest-increasing-subsequence/这题的难点在于在O(nl...原创 2020-05-01 16:56:14 · 232 阅读 · 0 评论 -
【leetcode 剑指offer No.56】 数组中数字出现的次数的解题思路和易错点
记录一下此题的操作思路,由于题目要求时间复杂度为O(n),空间复杂度为O(1),所以肯定是不能使用借助其他数据结构或者双指针遍历的方法了。这里使用的是位运算符。主要是异或运算符,首先贴出异或运算符的几点重要性质。1.如果我们对 0 和二进制位做 XOR 运算,得到的仍然是这个二进制位。a⊕0=a2.如果我们对相同的二进制位做 XOR 运算,返回的结果是 0。a⊕a=03.X...原创 2020-04-20 15:31:36 · 101 阅读 · 0 评论 -
C++中按大小顺序返回容器的下标访问值以及字符串和数字转化
首先记录下字符串与数字想转换的两条语句1.数字转换为字符串,使用to_stringint num = 5;string ch = to_string(num);2.字符串转换为数字,使用atoi()string ch="5";int num=atoi(ch.c_str());之前在python里遇到过很方便的返回序号程序,c++中要复杂一点,但是思想一样。使用s...原创 2020-04-02 15:22:02 · 337 阅读 · 0 评论 -
初始化二维vector
在刷leetcode 时候,遇到一个问题,平常在使用vector时,往里面加元素都是直接push_back,vector也会动态的调整自己的内存。但是如果访问一个二维vector时,如果要访问到行号,就需要自己提前给vector通知resize的大小。再访问二维数组前,使用vector.resize()来指定要使用的行号。这样就可以访问行号了。/** * Definition for a ...原创 2020-03-24 21:44:13 · 232 阅读 · 0 评论 -
c++primer练习15.26
定义两个类Quote,Bulk_Quote的拷贝控制成员。一开始对于定义没有完全了解的时候,我想跨过Disc_quote中间这个类的定义,来对于派生类的最底层Bulk_Quote进行定义,经过编译器的提示发现是不可取的,我们得先定义出基类得拷贝控制成员。下面贴出自己得代码。class Quote {public: Quote() = default; Quote(const s...原创 2020-03-16 19:50:32 · 169 阅读 · 0 评论 -
c++ lambda表达式
[捕获列表]1、空,没有使用任何函数对象参数。2、=,函数体内可以使用Lambda所在作用范围内所有可见的局部变量(包括Lambda所在类的this),并且是值传递方式(相当于编译器自动为我们按值传递了所有局部变量)。3、&,函数体内可以使用Lambda所在作用范围内所有可见的局部变量(包括Lambda所在类的this),并且是引用传递方式(相当于编译器自动为我们按引用传递了所...转载 2020-03-10 20:45:01 · 67 阅读 · 0 评论 -
c++ 标准库bind函数
在学习到使用标准库函数对象时的练习题中使用了一个bind适配器,对于此知识点有些遗忘,特复习并记下知识点。首先,什么时候使用bind,书里写出是为了解决使用find_if中参数需要固定的长度参数,而有一些情况下,想要传入的函数并不能满足条件,所以就使用bind标准库函数来解决此问题。bind函数可以看作一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用对象来适应原对...原创 2020-03-10 20:31:56 · 117 阅读 · 0 评论 -
左值引用和右值引用
链接:https://www.nowcoder.com/questionTerminal/7c837f6666734106928663b9a35e9637?toCommentId=2576717来源:牛客网左值引用一个C++引用声明后必须被初始化,否则编译不过,初始化之后就相当与一个变量(地址为初始化时所引用变量的地址)。由于拥有共同的地址,而且也是同一个类型,所以对其操作就相当于对原对象的...转载 2020-03-07 20:27:02 · 97 阅读 · 0 评论 -
记录一个c++ primer练习里推荐使用的写法
在练习13.43中,推荐使用for_each和lambda替代原来的for循环destory元素。贴出代码for (auto i = first_free; i != elements; i++) { alloc.destroy(--i);}for_each(elements, first_free, [this](std::string &rhs) { alloc.destr...原创 2020-03-06 17:17:32 · 107 阅读 · 0 评论 -
c++primer ch13学习小记
练习13.13 首先贴出代码struct X { X() { cout << "X()" << endl; } X(const X&) { cout << "X(const X&)" << endl; } X& X::operator=(const X &h) { std::cout << ...原创 2020-03-02 11:46:08 · 144 阅读 · 1 评论