自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Day7 赎金信

给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。因为题目所只有小写字母,那可以采用空间换取时间的哈希策略, 用一个长度为26的数组还记录magazine里字母出现的次数。你可以假设两个字符串均只含有小写字母。依然是数组在哈希法中的应用。

2023-07-20 13:43:53 29

原创 Day7 四数相加II

为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。

2023-07-20 11:37:45 38

原创 Day6 两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9。因为 nums[0] + nums[1] = 2 + 7 = 9。所以返回 [0, 1]

2023-07-19 18:29:23 28

原创 Day6 快乐数

快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。所以这道题目使用哈希法,来判断这个sum是否重复出现,如果重复了就是return false, 否则一直找到sum为1为止。如果 n 是快乐数就返回 True;不是,则返回 False。判断sum是否重复出现就可以使用unordered_set。编写一个算法来判断一个数 n 是不是快乐数。

2023-07-19 15:28:43 26

原创 Day6 有效的字母异位词

示例 1: 输入: s = "anagram", t = "nagaram" 输出: true。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 2: 输入: s = "rat", t = "car" 输出: false。你可以假设字符串只包含小写字母。

2023-07-19 11:54:16 19

原创 Day6 两个数组的交集

输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。题意:给定两个数组,编写一个函数来计算它们的交集。

2023-07-19 11:24:42 15

原创 Day04 链表相交

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构。

2023-07-18 18:18:18 32 1

原创 Day04 删除链表的倒数第N个结点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2:输入:head = [1], n = 1 输出:[] 示例 3:输入:head = [1,2], n = 1 输出:[1]

2023-07-18 10:45:05 17 1

原创 Day04 两两交换链表中的节点

/初始化一个虚拟节点//将虚拟节点与头结点连接起来://当头节点为空,就直接返回空结点//当头结点的下一个结点为空,就意为这链表中只有一个结点,此时也不用两两交换了,直返回那个结点就行;//要交换结点,需要提前准备好3个结点;

2023-07-17 18:03:07 21 1

原创 Day3 206.反转链表

题意:反转一个单链表。示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL。

2023-07-15 22:04:40 42 1

原创 Day2 707.设计链表

力扣题目链接(opens new window)题意:在链表类中实现这些功能:2.头插:在链表的最前面插入一个新节点,插入完成后,新插入的节点成为链表新的头结点; 3.尾插:在链表最后面添加一个节点:4.在第index之前插入一个节点: //4.1 index = 0;插入的节点为链表的新头节点; //4.2 index等于链表的长度(size),那么新插入的节点为链表的尾节点; //4.3 index大于链表的长度,那么返回空; //4.4 index小于

2023-07-15 18:13:39 70 1

原创 Day2 203.移除链表元素

题意:删除链表中等于给定值 val 的所有节点。示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]示例 2: 输入:head = [], val = 1 输出:[]示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]

2023-07-15 17:57:34 28 1

原创 Day01 27. 移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。

2023-07-14 16:06:57 29 1

原创 Day01 704. 二分查找

1.给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。123123说实话,看到本题之后我的第一想法是利用迭代器将vector容器遍历一遍,然后找到Target元素。后来又用了STL中的find函数直接找到目标元素。该题正确的打开方式是:看到有序且无重复元素,就应该想到用二分查找,因为这些都是使用二分查找的前提。

2023-07-13 20:52:17 32 1

原创 字符串输入

cin.get()遇到换行符,会认为是一个空行,会设置失效位,程序直接退出;cin.getline()遇到换行符时,会认为是一个空行,并将空字符串赋值给字符串变量。cin和cin.get()在读取数据后,均会将回车键生成的换行符保留在输入队列中;cin.getline会丢弃换行符,它在存储字符串时,它用空字符串来替换换行符。cin.get和cin.getline()会读取换行符,而cin使用空白(换行符、制表符、空格)来确定字符串的结束位置,但cin不会读取空白。

2023-06-21 15:31:59 48

原创 字符串输入

cin使用空白(空格、制表、换行符)来确定字符串的结束位置。cin不会读取空格、制表符、换行符。cin.get()在读取空行后将会设置失效位,这意味着接下来的输入将被阻断;cin.getline()在读取空行后,将空字符串赋给对应的字符串。,而cin.getline()函数每次读取一行。cin和cin.get()在读取数据后,均会将回车键生成的的。cin.get()与cin.getline()均会。当cin.get和cin.getline()后面。当cin.get和cin.getline()后面。

2023-06-21 15:05:58 29

原创 C++知识点笔记

答:该编译器指令将导致预处理器将iostream中包含的文件添加到程序中。这是一种典型的预处理操作,即在程序编译之前,添加或替换文本。答:在返回值为空void时,可以不使用return关键字。然而,如果不提供返回值,可以使用return结束函数的运行。导致这种问题的原因很可能是什么?答:它使得可以在程序中使用std名称空间下所有定义的名称。5.定义函数时,在什么情况下不必使用关键字return?2.下面的预处理器编译指令是做什么用的?1.C++程序的模块叫什么?3下面的语是做什么用的?

2023-06-15 11:41:29 41 1

原创 1 内存分区模型

堆区数据由程序员管理开辟和释放堆区数据利用new关键字进行开辟内存。

2023-06-14 11:22:08 30

原创 4.7 多态

将每个零件封装出抽象基类,并且提供不同的厂商生产不同的零件,例如Intel厂商和Lenovo厂商。多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码。在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容。利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶。静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名。创建电脑类提供让电脑工作的函数,并且调用每个零件工作的接口。子类必须重写抽象类中的纯虚函数,否则也属于抽象类。

2023-06-13 09:43:13 39 1

原创 4.6 继承

继承的好处:==可以减少重复的代码==A 类称为子类 或 派生类B 类称为父类 或 基类。

2023-06-11 08:40:07 39 1

原创 4.5 运算符重载

运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。

2023-06-09 22:15:03 42

原创 4.4 友元

【代码】4.4.2 类做友元。

2023-06-09 15:38:03 85

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除