- 博客(8)
- 收藏
- 关注
原创 力扣刷题之旅——4.寻找两个正序数组的中位数
我的方法用到了vector容器;首先先创建一个vector容器,该容器大小为容器nums1和容器nums2的和,后用STL中的merge函数,将nums1与nums2合并并且排序存入到num中,最后判断num中元素个数的奇偶性,根据奇偶性不同使用不同方法求出中位数。beg1、end1为第一个容器的始、终迭代器,beg2、end2为第二容器的始、终迭代器;给定两个大小分别为m和n的正序数组nums1和nums2。merge函数 功能:将两个有序的容器合并到另一个目标容器中,且合并后目标容器依然有序。
2024-10-25 13:23:24
324
原创 蓝桥之旅——204.压缩字符串
然后设置一个计数器num,用于记录有多少个相同的字符,由于字符串中的第一个字符本身算1,所以num的初值为1,之后用for循环将第一个字符与下一个字符通过if语句进行比较,若相等则“num++”,当字符不再相等时,终止num计数,并且将l1与num一起存储到l2中,但num不能输出1,所以加一个if语句判定num是否等于1。然后压缩后的字符要比原字符串的长度更短时才输出压缩后的字符,所以输出前判断l1和l2的长度,即“l1.size()<l2.size()”,最后输出l2。
2024-10-15 19:15:41
410
原创 蓝桥之旅——1602.出现最多的字符
通过a、b、c、d、e、f来计A、B、C、D、E、F出现个数,然后最后通过三目运算符比较a、b、c、d、e、f的大小,将最大的赋值给max,最后输出max即可。
2024-10-09 19:22:45
191
原创 算法——升序序列的中位数(数据结构统考真题)
一个长度为L(L>0)的升序序列S,处在第[ L/2 ]个位置的数称为S的中位数两个序列的中位数是含它们所有元素的升序序列的中位数现有两个长度都为L的序列S1和S2,找出这两个序列的中位数。则S1和S2的中位数是11(若元素个数为偶数个,则中位数取中间两个中更小的数)因为两个序列都是升序的,如果a=b(a为S1的中位数,b为S2的中位数),说明a的左值都比a小,同理b,又因为这两个序列长度相等,所以a和b,就是这两个序列的中值。如果a和b不相等,可以通过比较a和b的大小得出两个升序序列的中值。
2024-09-23 21:49:57
226
原创 蓝桥刷题之旅——202.确定字符串是否包含唯一字符
可以设置两个循环,例如当第一个循环到10时,用第10个字符与1~9的所有字符进行比较是否相等,由此可得出字符是否唯一。判断一个字符串中的单个字符是否唯一,可以通过每个字符与其他所有字符进行比较,重复则输出NO,否则输出YES。实现一个算法来识别一个字符串的字符是否是唯一的(忽略字母大小写)。输出一行,若字符串的字符是唯一的,则输出。输入一行字符串,长度不超过 100。//题目来自蓝桥题库。
2024-09-23 19:14:36
463
原创 力扣刷题之旅---回文数
根据回文数的定义,我们可以通过将数字倒转过来与原数字进行比较是否相等来决定返回值是false还是true。我们可以设置循环语句,先将数字个位上的数单独提出来也就是“p%10”,然后在进入下一循环前将数字位数减一,也就是代码中的"p/=10",这样每次单独提出来的数字就是下一位的数字,然后通过“renum*10”循环就可以将数字位数个位数变成最高位以此类推。首先,我们通过题目示例可知负数一定不是回文数,然后个位数一定是回文数,因为个位数倒转后还是原数字。我的方法有些简单,如果有更好的,欢迎指导。
2024-09-21 20:37:53
308
原创 力扣刷题之路---罗马数字转整数
例如, 罗马数字 2写做 II ,即为两个并列的I。12写做XII,即为X+II。27写做XXVII, 即为XX +V+II。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。给定一个罗马数字,将其转换成整数。本人方法不是很好,接受建议。
2024-09-19 15:16:17
482
2
空空如也
蓝桥题库_分巧克力,C++
2024-10-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人