基本数据结构
文章平均质量分 72
颜值博主
这个作者很懒,什么都没留下…
展开
-
链表简单操作
面试题 02.06. 回文链表难度简单50编写一个函数,检查输入的链表是否是回文的。示例 1:输入: 1->2输出: false 示例 2:输入: 1->2->2->1输出: true 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 这里关键难点在于O(1)的空间复杂度,为此采用将原链表的后半部分反转,并依次比较的操作实现。首先通过快慢指针的方法找到链表的中间节点half_node,对于链表长度N为偶数时,...原创 2021-02-26 14:41:02 · 208 阅读 · 0 评论 -
多态的简单理解
所谓多态(Polymorphism),按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数(Virtual Function) 实现.原创 2020-06-09 16:45:24 · 1862 阅读 · 0 评论 -
基本操作汇总
常见函数max与max_element:max(a,b),返回a,b两者之间的较大值max_element(first, end),返回first和end之间的最大值的迭代器(其中first和end均为迭代器),也可用于寻找最大值所在索引对于数组D[10]来说,使用res = max_element(D,D+6),即返回数组[0, 6)之间的最大值所在迭代器res,(res - D) 即为索引值。对于向量vector来说,使用begin()、end()作为参数,实例如下:vector原创 2021-01-31 15:40:56 · 138 阅读 · 0 评论 -
面试题汇总
堆栈的定义,堆和栈的区别?一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在.原创 2021-01-22 21:16:19 · 178 阅读 · 0 评论 -
929. 独特的电子邮件地址(Set、哈希集合、无序哈希)
难度简单每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔。例如,在alice@leetcode.com中,alice是本地名称,而leetcode.com是域名。除了小写字母,这些电子邮件还可能包含'.'或'+'。如果在电子邮件地址的本地名称部分中的某些字符之间添加句点('.'),则发往那里的邮件将会转发到本地名称中没有点的同一地址。例如,"alice.z@leetcode.com”和“alicez@leetcode.com”会转发到同一电子邮件地址。 (请...原创 2020-09-25 21:04:44 · 647 阅读 · 0 评论 -
Letcode 2020秋季赛 2. 早餐组合(排序)
2.早餐组合题目难度Easy小扣在秋日市集选择了一家早餐摊位,一维整型数组staple中记录了每种主食的价格,一维整型数组drinks中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过x元。请返回小扣共有多少种购买方案。注意:答案需要以1e9 + 7 (1000000007)为底取模,如:计算初始结果为:1000000008,请返回1示例 1:输入:staple = [10,20,5], drinks = [5,5,2], x = 15输出...原创 2020-09-12 17:20:48 · 423 阅读 · 0 评论 -
C++ Map的基本操作
首先是find函数的应用map<int, int>roomif(room.find(5) == room.end()) room[5] = 1;else room[5] = room[5] + 1;对于迭代器应用:for (map<int, int>::iterator it = room.first(); it != room.end(...原创 2020-03-29 12:28:21 · 136 阅读 · 0 评论