
C++
文章平均质量分 79
weixin_43579079
这个作者很懒,什么都没留下…
展开
-
leetcode 600-700
文章目录重做题605. 种花问题645. 错误的集合646. 最长数对链(dp\贪心)647. 回文子串回文字符串698. 划分为k个相等的子集(dfs)704. 二分查找712. 两个字符串的最小ASCII删除和713. 乘积小于K的子数组(dp)718. 最长重复子数组(dp***********)最长公共子串738. 单调递增的数字739. 每日温度(单调栈)743. 网络延迟时间746. 使用最小花费爬楼梯766. 托普利茨矩阵852. 山脉数组的峰顶索引860. 柠檬水找零870. 优势洗牌875原创 2020-08-07 20:05:03 · 808 阅读 · 0 评论 -
leetcode 400-500
文章目录重做题401. 二进制手表413. 等差数列划分(dp)416. 分割等和子集(背包问题)当成01背包问题417. 太平洋大西洋水流问题442. 数组中重复的数据435. 无重叠区间(贪心)445. 两数相加 II448. 找到所有数组中消失的数字(桶排序)451. 根据字符出现频率排序(sort重写****************)452. 用最少数量的箭引爆气球454. 四数相加 II(哈希取数**********)474. 一和零(背包)494. 目标和496. 下一个更大元素 I重做题4原创 2020-07-24 14:21:49 · 799 阅读 · 0 评论 -
C指针和位运算
跟据符号顺序依次判断类型int p; //普通整型int *p;//带*说明p是一个指针,int说明p是指向整型的指针int p[3];//带[]说明p是一个数组,int说明数组里存放的是整型元素int *p[3];//[]说明是数组,*说明数组里的元素是指针,int说明这些指针元素指向整型。所以p是一个储存了整型的指针所组成的数组。int p(int);//p有()说明是个哈桑农户,函数有一个整型的参数,该函数返回的是整型int (*p)(int);//*说明p是指针,()说明*p是原创 2020-06-15 10:47:48 · 617 阅读 · 0 评论 -
leetcode 100-200
[@toc]100. 相同的树/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: bool isSameTre原创 2020-06-13 15:18:44 · 546 阅读 · 0 评论 -
leetcode 200-300
200. 岛屿数量写代码的时候要认真,一旦出错了,debug是很痛苦的,这次是叹号又没加队,而且初始赋值错了class Solution {private:int len1;int len2;public: void dfs(int i, int j, vector<vector<char>>& biggrid) { if (biggrid[i][j] == '0')return;原创 2020-05-20 14:27:03 · 502 阅读 · 0 评论 -
leetcode 300-400
@ [toc]257. 二叉树的所有路径这道题一看结果,其实就是写出所有路径的结果再变个形式,所以可以先dfs,然后变结果,常用的二叉树dfs就那几种括号里是否加!始终没有弄清,浪费了好多时间,判断是否为叶节点时应该用!left&&!right代表叶节点,而left本身就代表部位空了。另外string里面也有pop_back的方法/** * Definition for a binary tree node. * struct TreeNode { * int val;原创 2020-05-20 14:24:04 · 713 阅读 · 0 评论 -
c++容器各种用法总结
哈希表unordered_mapSTL中的unordered_map使用的是哈希表添加元素map[key] = value;根据索引key提取value注意:当key存在的时候会返回这个key对应的value,而不存在的时候则会直接添加进去这个key并且将value设置为1,所以这个只适用于确定key存在的情况下,可以先用find进行判断使用find查找value这两个的功能十分...原创 2020-04-05 01:19:26 · 1123 阅读 · 0 评论 -
c++ leetcode 500-600
文章目录542. 01 矩阵547. 朋友圈(并查集)并查集 https://blog.youkuaiyun.com/zjy_code/article/details/80634149576. 出界的路径数542. 01 矩阵在应用题中的dfs经常会遇到一个问题,在查看这个点四周的状态时,下一次递归又会回到这个地方,容易造成无限循环,在这道题中,可以使用不传入引用值,将已经搜索过的数改为其他数的情况,但这...原创 2020-04-02 11:47:04 · 393 阅读 · 0 评论 -
总结——数据结构
文章目录红黑树和AVL树的定义,特点,以及二者区别平衡二叉树(AVL树):红黑树:哈夫曼编码map底层为什么用红黑树实现B+树map和unordered_map的底层实现map和unordered_map优点和缺点epoll怎么实现的Top(K)问题stack overflow,并举个简单例子导致栈溢出栈和堆的区别,以及为什么栈要快两个栈实现一个队列Array&List, 数组和链表的区别...原创 2020-03-21 21:05:59 · 1227 阅读 · 0 评论 -
c++字符串、数组算法题
字符串(String)std::string 可更改,也可以用[]提取字符,和char[]数组使用上区别不大;substr方法:substr(n,m) n为起点,m要注意是长度而不是结束点!字符范围8位[-128.127]通常转换为unsigned [0,+255]题目类型字典序;简单操作:插入删除旋转;规则判断(罗马数字判断、整数合法、浮点数);数字运算(大数加法、二进制加...原创 2020-03-21 21:05:51 · 639 阅读 · 0 评论 -
leetcode1-100
C++版的leetcode,从头再来!1.两数之和下面这个代码在return的时候一直遇到问题:class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int length = sizeof(nums)/sizeof(nums[0]); ...原创 2020-03-21 18:13:39 · 1057 阅读 · 0 评论 -
总结——设计模式
哪些设计模式,介绍一下单例模式的多线程安全问题常见的设计模式如下:单例模式:单例模式主要解决一个全局使用的类频繁的创建和销毁的问题。单例模式下可以确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式有三个要素:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。工厂模式:工厂模式主要解决接口选择的问题。该模式下定义一个创建对象的接...原创 2020-03-21 11:55:22 · 159 阅读 · 0 评论 -
c++知识扫盲
->->是指针的指向运算符,通常与结构体一起使用。#include<stdio.h>struct stu // 定义一个结构体{ char name[10]; // 姓名 int num; // 学号 int age; // 年龄};void main(){ struct stu *s; // 定义一个结构体指针...原创 2020-03-20 23:56:12 · 406 阅读 · 0 评论 -
总结——数据库
数据库事务以及四个特性**事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元。**事务是DBMS中最基础的单位,事务不可分割。事务具有4个基本特征,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration),简称ACID。1. 原子性(Atomicity)原子性是指事务包...原创 2020-03-20 21:56:43 · 247 阅读 · 0 评论 -
总结——计算机网络
OSI七层模型和TCP/IP四层模型,每层列举2个协议OSI七层模型及其包含的协议如下:物理层: 通过媒介传输比特,确定机械及电气规范,传输单位为bit,主要包括的协议为:IEE802.3 CLOCK RJ45数据链路层: 将比特组装成帧和点到点的传递,传输单位为帧,主要包括的协议为MAC VLAN PPP网络层:负责数据包从源到宿的传递和网际互连,传输单位为包,主要包括的协议为IP AR...原创 2020-03-20 21:29:31 · 585 阅读 · 0 评论 -
总结——操作系统
文章目录进程与线程的概念,以及为什么要有进程线程,其中有什么区别,他们各自又是怎么同步的多线程和多进程的不同有了进程,为什么还要有线程?游戏服务器应该为每个用户开辟一个线程还是一个进程,为什么?多进程和多线程的使用场景单核机器上写多线程程序,是否需要考虑加锁,为什么?线程需要保存哪些上下文,SP、PC、EAX这些寄存器是干嘛用的线程间的同步方式,最好说出具体的系统调用一二进程状态转换图,动态就绪,...原创 2020-03-20 11:04:56 · 2417 阅读 · 0 评论 -
总结——C++方面
分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)参考答案【解答】BOOL型变量:if(!var)int型变量: if(var0)float型变量:const float EPSINON = 0.00001;if ((x >= - EPSINON) && (x <= EPSINON)指针变量: if(va...原创 2020-03-19 21:33:26 · 681 阅读 · 1 评论 -
动态规划问题
名人问题问题:在一个房间里有 N 个人,其中一个是名人,所谓名人就是大家都认识他,但是他不认识任何人。其它人可能认识房间里面另外的一部分人。你可以问任何人问题,但是问题只能是:你认识 X 吗,对方回答 Yes or No. 请问最少要问多少个问题才能把名人找出来?分析:我们把人编号,比如从1 到 N。我们考虑最坏情况:你问每一个人是否认识 X ,如果大家都认识,那么 X 一定是名人,如...原创 2020-03-18 18:05:43 · 279 阅读 · 0 评论 -
c++概率
算法题用返回0-6随机数的函数构造返回0-9随机数的函数问题:给定一个返回06的随机自然数的函数,记为rand6(),则如何用rand6()函数构造返回09随机自然数的函数rand9()?对于此问题,首先最容易想到的rand6() + 3、rand6() * 1.5、rand6()*2 - 4 等很明显都是错误的(rand6() + 3将返回的是3~9之间的随机数;rand6() * 1.5...原创 2020-03-18 12:21:24 · 1243 阅读 · 0 评论 -
c++图与树算法题
图与树图结构:节点、边分类:有向、无向特殊的图:二叉树、普通树、堆树的定义 树是由一个集合以及在该集合上定义的一种关系构成的,集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构,在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点。数据结构中有很多树的结构,其中包括二叉树、二叉搜索树、2-3树、红黑树等等,本文着重介绍二叉树。...原创 2020-03-18 01:17:48 · 331 阅读 · 0 评论 -
c++堆栈算法题
栈和队列堆栈和队列统称线性表;数组和列表可以实现两种数据结构;堆栈:后进先出;深度优先-按深度遍历;递归转非递归;队列:先进先出;广度优先-按层序遍历;栈框架首先看一下原c++栈的方法的基本用法:push(): 向栈内压入一个成员;pop(): 从栈顶弹出一个成员;empty(): 如果栈为空返回true,否则返回false;top(): 返回栈顶,但不删除成员;s...原创 2020-03-17 15:01:34 · 563 阅读 · 0 评论 -
c++链表
线性表的顺序存储:连续的内存空间;线性表的链式存储:不连续的内存空间;链表概念链表由一系列结点组成,每个节点包含两个域,最后一个节点的指针域为空,头结点不保存信息;链表框架linklist.h文件//linklist.h:定义链表结点和方法。#include <string>using namespace std; struct Info//节点存放的数据{ s...原创 2020-03-16 23:17:16 · 346 阅读 · 0 评论 -
《中国象棋开发》QT
QT使用QApplication 抽象了QT的应用程序;QWidgt抽象窗口;exec()函数 进入消息循环,等待用户输入;QPainter绘图部分:void MyWidge::paintEvent(QPaintEvent *){ //绘制类,参数:绘制对象 //绘制打印机、绘制图画、拷屏 QPainter painter(this);//this代指这个...原创 2020-03-13 16:37:25 · 674 阅读 · 0 评论 -
C++(内存高级话题、未归类知识点)
内存高级话题new、delete的进一步认识new1)new类对象时加不加括号的问题A *pa = new A;A *pa = new A();当类中有成员变量时,带括号的初始化会把一些和成员变量有关的内存清0,但不是整个对象的内存全部清0;当类中有构造函数时,两种的结果一样;int *p = new int;//初值随机int *p = new int();//初值0int...原创 2020-03-09 18:27:27 · 2283 阅读 · 0 评论 -
C++入门(智能指针和并发)
智能指针直接内存管理(new/delete)new分配方式称为动态分配(分配在堆上):直接内存管理(new.delete)void func(){ int i; i = 5;//临时对象,系统在栈上进行分配,当函数结束内存被回收 static int j;//局部静态对象,在静态区域分配,执行到此语句时才会分配内存,函数执行完毕也不会释放内存}class AA a;//编...原创 2020-03-04 16:16:16 · 1764 阅读 · 0 评论 -
C++入门(一至四章)
应用领域项目如果既要求效率又要建模和高度抽象,选择C++;系统层软件开发;服务器程序开发;游戏、网络、分布式、云计算;科学计算C++对C的加强1.命名空间2.对全局变量定义管理的加强(不能重定义),可以随时定义(vs:F9加入断点,F5调试到断点)int abc = {5}; //等号可有可无int a[]{11,12,34};//定义数组3对struct的增强4.变...原创 2020-02-24 02:26:15 · 371 阅读 · 0 评论