- 博客(201)
- 收藏
- 关注
原创 【C++语言】【数组】【双指针】代码随想录算法训练营第二天 | 209. 长度最小的子数组、59. 螺旋矩阵 II
1、滑动窗口,需注意明确:1)窗口内是什么?2)如何移动左边界;3)如何移动右边界1、遵循循环不变量原则,采用左闭右闭的区间。
2025-02-16 12:12:13
105
原创 【C++语言】【双指针】代码随想录算法训练营第一天 | 704. 二分查找、27. 移除元素、977. 有序数组的平方
1、看到数组有序,且无重复元素,第一时间考虑二分法;2、二分法需注意:左闭右闭小于等于(俗称三闭);即数组区间取闭区间,循环变量取小于等于,因为left == right 是有效的。1、原地操作数组,考虑双指针之快慢指针1、创建一个固定大小的容器,并将所有元素赋同一个值:vector<int> result(size, 0);// 创建一个大小为size的容器,并全部赋值为02、C++中快排库函数:sort(nums.begin(), nums.end());// 默认升序排列。
2025-02-13 00:30:37
181
原创 【C++语言】卡码网语言基础课系列----完结篇
C++函数基础变量定义数据类型输入输出流iostream写入数据cin和输出数据cout输入运算符和输出运算符C++标准库命名空间 stdwhile控制多次输入。
2025-02-04 15:21:59
489
原创 【C++语言】卡码网语言基础课系列----21. 图形的面积
在上面的示例代码中,图形类拥有shape属性和getArea、getType方法,而子类在父类这些属性和方法的基础上新增了radius属性和getRadius方法,并且在子类和父类中都有getArea这个方法,这被称为方法的重写,方法的重写需要override关键字,其意思是子类重写父类的方法,并提供自己的实现。简而言之,“类”是现实世界中的实体在计算机世界中的抽象概念,类可以看作是对象的模板,它定义了对象的结构和行为方式,可以用来创建具有相同属性和行为的多个对象,而对象是“类”的实现。
2025-02-04 15:14:06
667
原创 【C++语言】卡码网语言基础课系列----20. 排队取奶茶
在C++中,你可以使用标准库提供的 std::queue 来创建和操作队列,不过这需要引入头文件queue。// 引入queue头文件 # include <queue>创建一个队列和创建一个栈的写法是相似的,需要指定队列中元素的类型,不过这也意味着队列中的元素必须是相同的数据类型,下面的代码表示创建一个字符串类型的队列。// 创建一个字符串类型的队列。
2025-02-04 14:58:25
635
原创 【C++语言】卡码网语言基础课系列----19. 洗盘子
C++标准库提供了一个名为 std::stack 的栈容器适配器,想要使用它,只需要引入<stack头文件即可。#include <stack> // 引入stack头文件然后就可以通过stack数据类型 栈名称这样的形式来创建一个栈并进行操作了// 创建一个int类型的栈。
2025-02-04 14:52:10
847
原创 【C++语言】卡码网语言基础课系列----18. 开房门
而pair<int, int>定义了kv也就是键值对的数据类型是pair, C++中的pair类型会将两个不同的值组合成一个单元, 常用于存储键值对,创建pair的时候,也必须提供两个类型名,比如上面的pair对象,两个值的类型都是int, 在使用时通过first 和 second 成员来访问 pair 中的第一个和第二个元素, 它的 first 成员存储键,而 second 成员存储值。如果键不存在,[]操作符将会创建一个新的键值对,将其插入到map中,并将值初始化为默认值(对于整数来说,默认值是0)。
2025-02-04 14:42:15
862
原创 【C++语言】卡码网语言基础课系列----17. 判断集合成员
方法用于查找特定元素是否存在于集合中,如果 find() 方法找到了要查找的元素,它会返回指向该元素的迭代器,如果未找到要查找的元素,它会返回一个指向集合的 end() 的迭代器,表示未找到。迭代器都拥有名为begin()和end()的成员,表示指向第一个元素和最后一个元素的下一个元素的迭代器(尾后迭代器),如果容器为空,则begin和end返回的是同一个迭代器。可以理解为,迭代器和下标运算符的作用一样,用来访问容器中的元素,并且迭代器可以从一个元素移动到另外一个元素。使用集合set需要先引入头文件。
2025-02-04 14:28:53
885
原创 【C++语言】卡码网语言基础课系列----16. 出现频率最高的字母
题目描述:输入描述:输出描述:输入示例输出示例小白寄语扎根,做好手头的事,精进。人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。-----------纳兰性德
2025-02-03 19:31:21
214
原创 【C++语言】卡码网语言基础课系列----15. 链表的基础操作III
然后是 L 行输出,每次删除一个元素之后都将链表输出一次,元素之间用空格隔开,最后一个元素后没有空格;如果删除元素后链表的长度为0,则不打印链表。第三行包含一个整数 S,表示后续会有 S 行输入,每行两个整数,第一个整数为 n,第二个整数为 x ,代表在链表的第 n 个位置插入 x。在 S 行输入后,后续会输入一个整数 L,表示后续会有 L 行输入,每行一个整数 m,代表删除链表中的第 m 个元素。然后是 S 行输出,每次插入一个元素之后都将链表输出一次,元素之间用空格隔开,最后一个元素后没有空格;
2025-02-02 23:47:21
271
原创 【C++语言】卡码网语言基础课系列----14. 链表的基础操作II
每行输出链表中的第 m 个元素。如果 m 位置不合法,则输出“Output position out of bounds.”。构建一个单向链表,链表中包含一组整数数据,输出链表中的第 m 个元素(m 从 1 开始计数)。第一行包含两个整数 n 和 k,n 表示需要构建的链表的长度,k 代表输入的 m 的个数。接下来一行包含 k 个整数,表示输出链表中的第 m 个元素。接下来一行包含 n 个整数,表示链表中的元素。等闲变却故人心,却道故人心易变。-----------纳兰性德。扎根,做好手头的事,精进。
2025-02-02 22:01:00
363
原创 【C++语言】卡码网语言基础课系列----13. 链表的基础操作I
下面的完整代码定义了一个名为ListNode的结构体,用于表示链表中的一个节点,包含存储节点数据的数据域和存储下一个节点地址的指针域。// 链表节点结构体int val;// 存储节点的数据// 指向下一个节点的指针// 构造函数,用于初始化节点, x接收数据作为数据域,next(nullptr)表示next指针为空这里的ListNode(int x)表示定义一个接收整数参数 x的名称为ListNode的构造函数(名称和结构体相同)
2025-02-02 21:03:59
830
原创 【C++语言】卡码网语言基础课系列----12. 位置互换
输入的第一行是一个整数n,表示有测试数据。(整个输入中,只有一个n)给定一个长度为偶数位的字符串,请编程实现字符串的奇偶位互换。接下来是n组测试数据,保证串长为偶数位(串长<=50)。请为每组测试数据输出奇偶位互换后的结果,每组输出占一行。人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。-----------纳兰性德。扎根,做好手头的事,精进。输入包含多组测试数据。
2025-02-02 13:16:45
187
原创 【C++语言】卡码网语言基础课系列----11. 句子缩写
接下来有n行,每组测试数据占一行,每行有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成;输入的第一行是一个整数n,表示一共有n组测试数据。(输入只有一个n,没有多组n的输入)单词长度不超过10,由一个或多个空格分隔这些单词。请为每组测试数据输出规定的缩写,每组输出占一行。输出一个词组中每个单词的首字母的大写组合。人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。-----------纳兰性德。扎根,做好手头的事,精进。
2025-02-02 12:46:32
270
原创 【C++语言】卡码网语言基础课系列----10. 平均绩点
因为字符串读取遇到空格就会停止,表示这是一个单词,但有的时候我们想读取完整的一行,这就要求我们的读取不会在空格处停止,这种情况下可以使用到getline(),它会一直读取字符,直到遇到换行符(Enter键)或文件结束符(如果从文件读取)才结束。字符表示单个字符,每个字符用单引号扩起来,比如’a’, 而字符串是一个可变长度的字符序列,可以包含多个字符,用双引号扩起来,比如"hello"。每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。
2025-02-01 23:49:15
217
原创 【C++语言】卡码网语言基础课系列----9. 打印正方形
编写一个程序,模拟打印一个正方形的框。程序应该接受用户输入的正整数作为正方形的边长,并打印相应大小的正方形框。请注意,内部为空白,外部是由 “*” 字符组成的框。输入只有一行,为正方形的边长 n。人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。-----------纳兰性德。扎根,做好手头的事,精进。
2025-02-01 00:25:39
116
原创 【C++语言】卡码网语言基础课系列----8. 奇怪的信
有一天, 小明收到一张奇怪的信, 信上要小明计算出给定数各个位上数字为偶数的和。每组占一行,只有一个整整数,保证数字在32位整型范围内。对于每组输入数据,输出一行,每组数据下方有一个空行。例如:5548,结果为12,等于 4 + 8。小明很苦恼,想请你帮忙解决这个问题。人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。-----------纳兰性德。扎根,做好手头的事,精进。
2025-02-01 00:13:08
155
原创 【C++语言】卡码网语言基础课系列----7. 摆平积木
一天,他把许多积木块组成了好多高度不同的堆,每一堆都是一个摞一个的形式。然而此时,他又想把这些积木堆变成高度相同的。但是他很懒,他想移动最少的积木块来实现这一目标,你能帮助他吗?接着下一行是n个正整数,表示每一个积木堆的高度h,每块积木高度为1。其中1<=n<=50,1<=h<=100。每组测试样例包含一个正整数n,表示小明已经堆好的积木堆的个数。对于每一组数据,输出将积木堆变成相同高度需要移动的最少积木块的数量。在每组输出结果的下面都输出一个空行。扎根,做好手头的事,精进。当n=0时,输入结束。
2025-01-31 23:45:03
308
原创 【C++语言】卡码网语言基础课系列----6. 数组的倒序与隔位输出
vector (也被称为容器),做为C++ 标准库中的一个容器类,表示对象的集合,它可以动态地存储一组元素,所以你可以根据需要轻松地调整 vector 的大小。#include <vector> // 使用容器前,需包含vector头文件// 创建一个空vector, 元素是int类型的// 创建容器,并进行初始化// 创建一个整型元素的容器,并显示初始化// 创建一个包含5个整型元素大小的容器,其初始化值被系统默认赋0// 创建一个包含5个重复元素的容器,每个元素的值都为-1。
2025-01-31 22:51:28
306
原创 【C++语言】卡码网语言基础课系列----5. A+B问题VIII
输入的第一行为一个整数N,接下来N行每行先输入一个整数M,然后在同一行内输入M个整数。注意以上样例为一组测试数据,后端判题会有很多组测试数据,也就是会有多个N的输入。对于每组输入,输出M个数的和,每组输出之间输出一个空行。只保证每组数据间是有空行的。但两组数据并没有空行。人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。-----------纳兰性德。你的任务是计算若干整数的和。扎根,做好手头的事,精进。
2025-01-31 14:27:55
596
原创 【C++语言】卡码网语言基础课系列----4. A+B问题IV
如果N=0时,表示输入结束,且这一行不要计算。每行的第一个数N,表示本行后面有N个数。对于每一行数据需要在相应的行输出和。人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。-----------纳兰性德。你的任务是计算若干整数的和。扎根,做好手头的事,精进。
2025-01-31 13:45:50
162
原创 【C++语言】卡码网语言基础课系列----3. A+B问题III
输入中每行是一对a和b。其中会有一对是0和0标志着输入结束,且这一对不要计算。对于输入的每对a和b,你需要在相应的行输出a、b的和。如第二对a和b,他们的和也输出在第二行。人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。-----------纳兰性德。你的任务依然是计算a+b。扎根,做好手头的事,精进。
2025-01-31 13:26:01
184
原创 【C++语言】卡码网语言基础课系列----2. A+B问题II
注意,测试数据不仅仅一组。也就是说,会持续输入N以及后面的a和b。第一行是一个整数N,表示后面会有N行a和b,通过空格隔开。对于输入的每对a和b,你需要在相应的行输出a、b的和。如第二对a和b,对应的和也输出在第二行。计算a+b,但输入方式有所改变。人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。-----------纳兰性德。扎根,做好手头的事,精进。
2025-01-31 13:10:20
121
原创 【C++语言】卡码网语言基础课系列----1. A+B问题I
每个程序有且仅有一个main函数,这是程序的入口。一个C++函数包含以下四个:函数名、返回值类型、形参、函数体。,cin用来表示标准输入流对象,用于从键盘读取输入;cout用来表示标准输出流对象,用于向屏幕输出结果;如对于输入中的第二对a和b,在输出中它们的和应该也在第二行。输入包含一系列的a和b对,通过空格隔开。对于输入的每对a和b,你需要依次输出a、b的和。人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。-----------纳兰性德。扎根,做好手头的事,精进。你的任务是计算a+b。
2025-01-31 12:35:44
226
原创 【Java语言】练习系列----杨辉三角(二维数组实现)
使用二维数组打印一个 10 行杨辉三角。【分析】第一行有 1 个元素, 第 n 行有 n 个元素每一行的第一个元素和最后一个元素都是 1从第三行开始, 对于非第一个元素和最后一个元素的元素。即:yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];具体代码实现如下:public class YangHuiTest { public static void main(String[] args) { // 1、声明并初
2021-04-11 16:00:20
368
原创 【Java语言】练习系列----随机生成一个长度为6且各个元素均不相同的整形数组
创建一个长度为6的int型数组,要求取值为1-30,同时元素值各不相同具体代码实现如下:public class ArrayTest { public static void main(String[] args) { // 1、动态初始化数组 int[] arr = new int[6]; // 2、利用Math.random进行区间取值,原区间[0,1),[0,30),[1,31) for(int i = 0; i <
2021-04-11 15:58:18
534
原创 【Java语言】练习系列----回形数格式方阵的实现
从键盘输入一个整数,则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如: 输入数字2,则程序输出:1 24 3输入数字3,则程序输出:1 2 38 9 47 6 5输入数字4, 则程序输出:1 2 3 412 13 14 511 16 15 610 9 8 7具体代码实现如下:public class RectangleTest { public static void ma
2021-04-11 15:55:11
612
原创 【Java语言】练习系列----判断输入的日期是当年的第几天
从键盘分别输入年、月、日,判断这一天是当年的第几天。备注:本次假设用户输入的日期均为合法日期。具体代码实现如下:import java.util.Scanner;public class TestDayOfYear { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("年份:"); int year =
2021-04-01 18:35:46
475
原创 【Java语言】练习系列----对三个整数进行排序,并按照从小到大的顺序打印输出
实现对三个整数进行排序,输出时按照从小到大的顺序输出。分析:两两进行对比,先将最小的数放在最前面,交换两个变量值时,使用异或完成,异或具体原理,请参照上篇博客:https://blog.youkuaiyun.com/weixin_43241205/article/details/115371263?spm=1001.2014.3001.5501具体代码实现如下:import java.util.Scanner;public class ThreeSort { public static void mai
2021-04-01 17:57:58
1216
1
原创 【Java语言】练习系列----使用异或完成两数交换
实现两个变量值交换的三种方法:m = 3, n = 5.具体代码实现如下:public class TwoChange { public static void main(String[] args) { int m = 3; int n = 5; /* 方法一:设置临时变量 int temp = m; m = n; n = temp; System.out.println("m =
2021-04-01 12:34:46
298
原创 【Java语言】力扣系列----9. 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。具体代码实现如下:class Solution { public boolean isPalindrome(int x
2020-11-11 20:40:08
438
2
原创 【Java语言】力扣系列----剑指 Offer 67. 把字符串转换成整数
写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。注意:假如该字符串中的第一个非空
2020-08-30 17:18:28
138
原创 【Java语言】力扣系列----1011. 在 D 天内送达包裹的能力
传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。示例 1:输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5输出:15解释:船舶最低载重 15 就能够在 5 天内送达所有包裹,如下所示:第 1 天:1, 2, 3, 4, 5第 2 天:6
2020-08-30 12:28:01
229
原创 【Java语言】力扣系列----875. 爱吃香蕉的珂珂
珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。珂珂可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)。示例 1:输入: piles = [3,6,7,11], H = 8输出: 4
2020-08-30 11:26:59
1104
原创 【爱奇艺笔试】0823-01 n的阶乘后0的个数
n的阶乘问题:正整数n的阶乘(n!)中的末尾有多少个0?例如:n = 5, n! = 120, 末尾有1个0实现:int CountZero(int n);输入描述:一个正整数输出描述:一个自然数样例输入: 31样例输出: 7具体代码实现如下:package aiqiyi;import java.math.BigInteger;import java.util.Scanner;public class aiqiyi01 { public static v.
2020-08-25 00:02:30
194
原创 【美团笔试】0822-01 合法用户名检测
/*小美的用户名:小美是美团的前端工程师,为了防止系统被恶意攻击,小美必须要在用户输入用户名之前做一个合法性检查,一个合法的用户名必须满足以下几个要求:1、用户名的首字符必须是大写或者小写字母。2、用户名只能包含大小写字母,数字。3、用户名需要包含至少一个字母和数字。如果用户名合法,请输出“Accept",反之输出”Wrong"。输入描述:输入第一行包含一个正整数T,表示需要检查的用户名数量。(1<=T<=100),接下来有T行,每行一个不超过20的字符串s,表示输入的用户名
2020-08-23 01:12:36
997
原创 【Java语言】力扣系列----111. 二叉树的最小深度
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree著作权归领扣网络所有。商业转载请联系
2020-08-21 11:52:19
207
原创 【Java语言】力扣系列----5. 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”具体代码实现如下:class Solution { public String longestPalindrome(String s) { // 特例判断 if(s.length() < 2 || s == null) ret
2020-08-19 11:15:58
235
原创 【Java语言】力扣系列----647. 回文子串
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:“abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:“aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”提示:输入的字符串长度不会超过 1000 。具体代码实现如下:class Solution { public int countSubs
2020-08-19 10:52:41
302
原创 【Java语言】力扣系列----696. 计数二进制子串
给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: “00110011”输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。另外,“00110011”不是有效的子串,因为所有的0(和1)没有组合在一起。示例 2 :输入: “10101”输
2020-08-10 15:50:51
267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人