
力扣_c++
力扣所得
moletop
薛定谔的机器学习
展开
-
栈,队列和堆模板总结
栈,队列和堆栈和队列是容器适配器 也就是底层容器加上接口,默认底层实现是deque。不提供走访功能,也不提供迭代器//栈stack<int> ss.push()s.pop()s.top() //队列queue<int> q//双端队列 deque<int>qq.push()//q.push_front(),q.push_back()q.pop()//q.pop_front(),q.pop_back()q.front()q.back(原创 2021-11-16 17:14:06 · 736 阅读 · 0 评论 -
动态规划模板总结
动态规划动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。对于动态规划问题,四步解决:确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序最后可以举例推导dp数组,然后可以打印dp数组对比一下最简单和经典的案例:斐波那契数列(兔子数列)分析过程1原创 2021-11-16 17:11:42 · 728 阅读 · 0 评论 -
二叉树模板整理
二叉树二叉树的种类在我们解题过程中二叉树有两种主要的形式:满二叉树和完全二叉树。满二叉树这棵二叉树为满二叉树,深度为k,有2^k-1个节点完全二叉树完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。二叉搜索树前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,「二叉搜索树是一个有序树」。若它的左子树不空,则左子树上所有结点的值均小于它的原创 2021-11-16 17:02:42 · 1083 阅读 · 0 评论 -
数组和字符串常用技巧和知识点
数组 和 字符串注:博客内容只限于个人学习。图片和内容可能整合了多渠道的信息来源,如侵联系可删。归并排序 分治思想分: 不断将数组从中点位置划分开(即二分法),将整个数组的排序问题转化为子数组的排序问题;治: 划分到子数组长度为 1 时,开始向上合并,不断将 较短排序数组 合并为 较长排序数组,直至合并至原数组时完成排序;参考https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/solution/jian-zhi-o原创 2021-11-16 17:08:55 · 1027 阅读 · 0 评论 -
c++ bitset总结
c++ bitset总结文章目录c++ bitset总结1.初始化2.位运算3.常用函数C++的 bitset 在 bitset 头文件中,bitset大概就是类似于bool数组一样的东西。但是它的每个位置只占1bit(特别特别小)一般来说bitset会让你的算法复杂度下降很多1.初始化bitset<24>bit;//bitset类型在定义时就需要指定所占的空间,默认全为0//bitset类型可以用string和整数初始化(整数转化成对应的二进制),不足位数时会自动在前面补0转载 2021-08-22 21:12:59 · 1084 阅读 · 0 评论 -
C++ vector清空/删除元素 和插入元素
C++ vector清空元素#include <iostream>#include <vector>using namespace std;vector<int> vecvecnum.clear();//清空元素,但不回收空间vector<int>().swap(vec);//清除元素并回收内存vecnum.swap(vector<int>());//另一种写法...原创 2021-08-14 22:13:48 · 728 阅读 · 0 评论 -
C++ static静态成员变量详解
http://c.biancheng.net/view/2227.html转载 2021-08-07 22:53:31 · 157 阅读 · 0 评论 -
c++ 结构体 初始化
c++ 结构体 初始化#include <iostream>#include <algorithm>#include<cstring>using namespace std;struct student{ int grade; char name[101]{}; int age; //student (int Grade,char Name [],int Age): grade(Grade), age(Age){strcpy(原创 2021-08-07 18:14:14 · 649 阅读 · 0 评论 -
c++ cmp 指定排序规则
c++ cmp 指定排序规则vector排序,从大到小指定规则。#include <iostream>#include <algorithm>#include <vector>bool cmp(int a ,int b){ return a>b;}int main(){ vector<int >vec={1,4,6,7,8,9,0,0}; sort(vec.begin(),vec.end(),cmp);//原创 2021-08-07 16:43:34 · 688 阅读 · 0 评论 -
c++ min和max库函数
在头文件<windows.h>中定义了min,max的宏,#define min(a,b) (((a)<(b))?(a):(b)),同理,max也是这样定义的。在头文件c++的也有的相应的min 和max 函数,两者用其一即可原创 2021-08-02 21:06:12 · 2429 阅读 · 0 评论 -
c++中数组或vector求最大值最小值的库函数
C++数组或vector求最大值最小值可以用max_element()及min_element()函数,二者返回的都是迭代器或指针。头文件:#include 1.求数组的最大值或最小值1)vector容器例 vector vec最大值:int maxValue = *max_element(v.begin(),v.end());最小值:int minValue = *min_element(v.begin(),v.end());2)普通数组例 a[]={1,2,3,4,5,6};最大值:转载 2021-08-02 20:54:12 · 6651 阅读 · 2 评论 -
c++输入连续的两个未知大小vector和输入二维向量vector
c++输入连续的两个vectorvector<int> g;vector<int> s;int tem = 0;while (cin>>tem) {//当输入符合,则一直循环 g.push_back(tem); if (getchar() == '\n')//遇到回车,跳出循环 break;}while (cin>>tem) { s.push_back(tem); if (getchar()原创 2021-07-31 16:22:35 · 1395 阅读 · 0 评论 -
C++中int a[5]和 int *a=new int[5]有什么区别
各项区别如下:1、如果只是int a[5]和int* a=new int[5]比较的话,前者可能还更简单一点。只是在使用上int* a=new int[10]需要判断内存是否分配成功,以及在不用时需要使用delete[] a进行内存释放; 2、如果不是a[5],而是a[5000000000]或者更大的话,那一般情况下,就只能使用int* a=new这种方式了。这个涉及到内存存放位置的问题,int a[]这种方式,内存是存放在栈上;int* a=new这种方式,内存是存放在堆上,栈的实际内存是连续原创 2021-07-31 16:15:15 · 1756 阅读 · 0 评论