cpp
森林海的棕熊
极客文化
展开
-
LeetCode两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 来源:力扣(LeetCode) 链接:https://leetcode原创 2020-07-16 14:00:43 · 107 阅读 · 0 评论 -
C++ pair笔记
c++中的结构模板,定义在头文件中,提供一个包含2个数据成员的结构体模板。继承与_Pair_base结构体模板。通过first,second访问2个成员,有 operator= 和 swap 方法。 1.模板 template <class T1,class T2> struct pair; 2.构造函数 2.1 默认构造函数 pair(); 构造一个 对对象及其元素值初始化默认值...原创 2019-04-10 20:10:21 · 811 阅读 · 0 评论 -
C++ vector笔记
一、什么是vector? 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。 二、容器特性 1.顺序序列 顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。 2.动态数组 支持对序列中的任意元素进行快速直接访问,甚至可...转载 2019-04-07 16:51:37 · 282 阅读 · 0 评论 -
C++ queue笔记
FIFO队列,queue 是一种容器适配器,专门设计用于在FIFO上下文中操作(先进先出),其中元素插入容器的一端并从另一端提取。 queue 实现为容器适配器,它是使用特定容器类的封装对象作为其底层容器的类,提供一组特定的成员函数来访问其元素。元素被推入特定容器的“后面”并从其“前面” 弹出。 底层容器可以是标准容器类模板之一或其他一些专门设计的容器类。该底层容器应至少支持以下操作: em...原创 2019-04-07 17:06:35 · 1142 阅读 · 0 评论 -
C++ string笔记
CPP 标准库类型string 标准库类型string表示可变长的字符序列,包含于string头文件,定义在std命名空间中 1.引入 ‘’’ #include using std::string; ‘’’ 2.初始化方法 string s1 //默认初始化, S1是一个空字符串 string s2(s1) //s2是s1的副本 string s2 = s1 //等价于s2(s1) strin...原创 2019-04-08 18:20:13 · 1140 阅读 · 0 评论 -
C++滑动窗口算法
滑动窗口算法在处理一些字符串问题时,可以把复杂度降为O(n)。 题目 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。 说明: 字母异位词指字母相同,但排列不同的字符串。 不考虑答案输出的顺序。 示例 1: 输入: s: “cbaebabacd” p: ...原创 2019-05-01 21:17:19 · 6933 阅读 · 0 评论 -
基于快慢指针链表求环
快慢指针可以在O(1)的常数内存空间里完成链表环形判断,时间复杂度是O(n)。思路大概是 慢指针每次前进一步,快指针前进两步,党慢指针走完环形一圈时,快指针刚好走完两圈,两个指针相遇,则判断有环。 #include<stdio.h> struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), ne...原创 2019-04-30 11:46:22 · 246 阅读 · 0 评论