- 博客(15)
- 收藏
- 关注
原创 C++关于构造函数的一点小思考
C++关于构造函数的一点小思考构造函数在OOP中是一些的基石,是一个类生成对象所要调用的第一个函数。当类对象被创建时,编译器为对象分配内存空间,同时构造函数被调用。构造函数和类名保持一致,它没有返回值,同时也不能被声明为void类型。通常,构造函数被用来对类的数据成员进行初始化。...
2020-11-27 11:52:43 276
原创 C++编程练习 矩阵模板类的实现
C++编程练习 矩阵模板类的实现前言通过自定义模板实现了一个矩阵及其运算的Matrix类,并重载了+ - * += -= *= [] 等运算符,但是没有实现列表初始化方式的构造函数。本文编写的代码可以用来学习使用,涉及到的知识点有模板、构造函数、拷贝构造、虚函数、动态内存分配、运算符重载等等,对初学C++的朋友来说是极好的练手。代码编写过程中借鉴了https://blog.csdn.net/m0_37772174/article/details/83018940的代码,这篇文章中还实现了矩阵的行变换
2020-11-13 15:53:06 1917 2
原创 LeetCode刷题记录 NO.1356二进制数字1排序
题目描述根据数字二进制下 1 的数目排序给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。示例 1:输入:arr = [0,1,2,3,4,5,6,7,8]输出:[0,1,2,4,8,3,5,6,7]解释:[0] 是唯一一个有 0 个 1 的数。[1,2,4,8] 都有 1 个 1 。[3,5,6] 有 2 个 1 。[7] 有 3 个 1 。按照
2020-11-06 14:51:58 169
原创 LeetCode刷题记录 NO.349 两个数组的交集
题目描述给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。来源:力扣(LeetCode)题解利用集合来求解class Solution {public: vector<int> intersectio
2020-11-02 20:30:30 175
原创 LeetCode刷题记录 NO.234回文链表
题目描述请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetCode)题解先用递归将一个指针移至链表尾,另一个指针指向链表头,同时向中间移动。class Solution {public: bool res = true; ListNode* cur; bool isP
2020-10-29 18:52:22 96
原创 LeetCode刷题记录 NO.1 两数之和
题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(LeetCode)题解暴力解法class Solution {public: vector<in
2020-10-28 16:12:34 126
原创 LeetCode刷题记录NO.1207 独一无二的出现次数
题目描述给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。示例 1:输入:arr = [1,2,2,1,1,3]输出:true解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。示例 2:输入:arr = [1,2]输出:false示例 3:输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]输出:true提示:1 <
2020-10-28 10:18:45 164
原创 LeetCode刷题记录 NO.1365 有多少小于当前数字的数字
目录题目描述题解题目描述给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。以数组形式返回答案。示例 1:输入:nums = [8,1,2,2,3]输出:[4,0,1,1,3]解释:对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。对于 nums[1]=1 不存在比它小的数字。
2020-10-26 16:37:38 118
原创 C++学习日志 指针常量与常量指针
引言在C/C++中,指针一直是编程语言的灵魂所在,指针的灵活性给编程带来了无限的可能性,但是也给初学者带来了噩梦。本文以一个初学者的视角的看待指针常量和常量指针的区别,以及在完全无法理解的情况下,可以使用的一些技巧。问题引出如上图所示,这里定义了一个指针p指向变量x。int x = 5;int* p = &x;常量指针与指针常量这里很容易理解,x和p是变量,其中p是指针,指向x,p中存储了内存区域中x所在的地址。那么如果x是一个常量呢?也就是:const int x = 5;
2020-10-22 22:59:51 90
原创 LeetCode刷题记录NO.763 划分字母区间
目录题目描述题解解题思路代码题目描述字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入:S = “ababcbacadefegdehijhklij”输出:[9,7,8]解释:划分结果为 “ababcbaca”, “defegde”, “hijhklij”。每个字母最多出现在一个片段中。像 “ababcbacadefegde”, “hijhklij” 的划分是错误的,因为划分的片段数较
2020-10-22 16:47:08 90
原创 LeetCode刷题记录 NO.844 比较退格字符
目录题目描述题解题目描述给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:S = “ab#c”, T = “ad#c”输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = “ab##”, T = “c#d#”输出:true解释:S 和 T 都会变成 “”。示例 3:输入:S = “a##c”, T = “#a#c”输出:true
2020-10-19 21:28:01 90
原创 LeetCode刷题记录 NO.19删除链表的倒数第N个节点
LeetCode刷题记录 NO.19删除链表的倒数第N个节点题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?来源:力扣解题思路最直接的思路,遍历链表,获取长度L,再遍历到第L-N+1个节点,将其删除,需要遍历两遍。如果只遍历一
2020-10-19 11:04:09 83
原创 LeetCode刷题记录 NO.116 填充右侧指针
填充每个节点的下一个右侧指针题目描述解题思路代码题目描述给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。来源:力扣解题思路运用递归,如
2020-10-15 19:09:10 77
原创 LeetCode刷题记录NO.24 交换链表节点
LeetCode刷题记录NO.24 交换链表节点题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。提示:链表中节点的数目在范围 [0, 100] 内0 <= Node.val <= 100来源:LeetCode基本思路迭代直接观察可以知道,每交换一次链表,实际上涉及到四个数据的操作,如1->2->3->4交换之后为2->1->4->3具体步骤:
2020-10-13 15:17:07 105
原创 LeetCode刷题记录 NO.141&142 环形链表
LeetCode刷题记录 NO.141&142 环形链表题目概述给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例:输入:head = [3,2,
2020-10-10 16:53:13 132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人