自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 文件操作——C语言

磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。上面说的适用于所有输入流一般指适用于标准输入流和其他输入流(如文件输入流);所有输出流一般指适用于标准输出流和其他输出流(如文件输出流)。

2024-07-28 19:05:06 726

原创 C++——模板初阶(泛型编程,函数模板,类模板)+STL简介

模板简介1. 泛型编程2. 函数模板3. 类模板STL简介1. 什么是STL2. STL的版本3. STL的六大组件4. STL的重要性5. 如何学习STL6.STL的缺陷

2024-06-02 16:49:00 838 3

原创 C/C++内存管理

1. C/C++内存分布2. C语言中动态内存管理方式:malloc/calloc/realloc/free3. C++内存管理方式4. operator new与operator delete函数5. new和delete的实现原理6. 定位new表达式(placement-new)7. 内存分布常见面试题

2024-05-28 22:58:24 944 2

原创 C++——类与对象(下)

1. 再谈构造函数2. static成员3. 友元4. 内部类5.匿名对象6.拷贝对象时的一些编译器优化7. 再次理解类和对象

2024-05-24 00:15:25 1011

原创 LeetCode每日一题——撞色搭配

特点 :对应比特位均为1结果才为1。

2024-05-18 23:50:25 896

原创 C++——类与对象(中)

1. 类的6个默认成员函数2. 构造函数3. 析构函数4. 拷贝构造函数5. 赋值运算符重载6. const成员函数7. 取地址及const取地址操作符重载

2024-05-18 22:47:49 1119

原创 数据结构——快速排序

上述为快速排序递归实现的主框架,发现与二叉树前序遍历规则非常像,大家在写递归框架时可想想二叉树前序遍历规则即可快速写出来,后序只需分析如何按照基准值来对区间中数据进行划分的方式即可。Hoare大佬的方法很好,奠定了我们快排的基础思想,但是,里面的坑实在是很多,稍有不慎算法就容易出错,后人因此提出了疑问并且继续优化了快速排序的代码,例如挖坑法。挖坑法的单趟排序跟Hoare版的可能大差不差,但是挖坑法会相比于Hoare版本更好理解。首先将我们的key的值存放起来,然后讲key值所在的位置挖空。

2024-05-11 17:10:37 458

原创 数据结构——希尔排序

希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和排序的工作。当gap=1时,所有记录在统一组内排好序。希尔排序分为两个步骤:1.预排序——接近有序(gap>1)2.插入排序(gap==1)1.预排序:比如先排红色组:再排蓝色组: 最后排绿色组: 代码分析:end的后一个输入往前插入: 依此类推 ,完成红色组的排序 依此类推,完成所有组的预排序 2.插入排序:当我们的g

2024-05-10 00:06:46 621 1

原创 数据结构——插入排序

直接插入排序是一种简单的插入排序法,其基本思想是:实际中我们玩扑克牌时,就用了插入排序的思想直接插入排序:当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2],…的排序码顺序进行比较,找到插入位置即将array[i]插入,原来位置上的元素顺序后移时间复杂度分析://时间复杂度(最坏):O(N^2)--有序。

2024-04-27 20:26:52 327

原创 LeetCode每日一题之专题一:双指针 ——快乐数

【代码】LeetCode每日一题之专题一:双指针 ——快乐数。

2024-04-04 23:47:37 440 8

原创 LeetCode每日一题之专题一:双指针 ——复写零

解法(原地复写-双指针):算法思路:如果「从前向后」进⾏原地复写操作的话,由于 0 的出现会复写两次,导致没有复写的数「被覆盖掉」。因此我们选择「从后往前」的复写策略。但是「从后向前」复写的时候,我们需要找到「最后⼀个复写的数」,因此我们的大体流程分两步:i. 先找到最后⼀个复写的数;ii. 然后从后向前进行复写操作。算法流程:a. 初始化两个指针 cur = 0 , dest = 0 ;b. 找到最后⼀个复写的数:i. 当 cur < n 的时候,一直执行下面循环:• 判断 cur

2024-04-03 23:57:33 475

原创 LeetCode每日一题之专题一:双指针 ——移动零

解法(快排的思想:数组划分区间-数组分两块):算法思路:在本题中,我们可以用一个 dest 指针来扫描整个数组,另一个 src 指针用来记录非零数序列的最后一个位置。根据 dest 在扫描的过程中,遇到的不同情况,分类处理,实现数组的划分。在 dest 遍历期间,使 [0, src] 的元素全部都是非零元素, [src + 1, dest - 1] 的元素全是零。 算法流程:a. 初始化dest=0(用来遍历数组), src = -1 (指向非零元素序列的最后⼀个位置。因为刚开始我们不知道最后一

2024-04-02 23:38:24 328 3

原创 蓝桥杯省赛刷题——题目 2657:修剪灌木

爱丽丝在每天傍晚会修剪一棵灌木,让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。灌木每天从早上到傍晚会长高 1 厘米,而其余时间不会长高。在第一天的早晨,所有灌木的高度都是 0 厘米。对于 30% 的数据,N ≤ 10. 对于 100% 的数据,1 < N ≤ 10000.输出 N 行,每行一个整数,第i行表示从左到右第 i 棵树最高能长到多高。3.第二次修剪到目标灌木后再次从左往右修剪到目标灌木。

2024-04-01 22:57:43 493 2

原创 蓝桥杯省赛刷题——题目 2656:刷题统计

小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题?对于 50% 的评测用例,1 ≤ a, b, n ≤ 10^6 . 对于 100% 的评测用例,1 ≤ a, b, n ≤ 10^18 .输入一行包含三个整数 a, b 和 n.输出一个整数代表天数。

2024-03-31 22:14:39 886 5

原创 C++——类与对象(上)

/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。声明和定义全部放在类体中public://显示基本信息public://姓名char* _sex;//性别。

2024-03-31 17:39:07 1176 8

原创 C++入门(2)

在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它,大家可思考下为什么?auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。return 10;auto b = a;//auto e;无法通过编译,使用auto定义变量时必须对其进行初始化return 0;【注意】

2024-03-31 14:52:19 820 2

原创 LeetCode每日一题——移除链表元素

移除链表元素OJ链接:203. 移除链表元素 - 力扣(LeetCode)题目:思路:这与之前的移除元素的题目很相似,那么我们同样可以用类似的做法(双指针)进行解题。但是这是一个链表删除,所以我们需要用结构体指针进行解题。PS:看到这里了,码字不易,给个一键三连鼓励一下吧!有不足或者错误之处欢迎在评论区指出!

2024-03-24 23:49:46 455 3

原创 LeetCode每日一题——统计桌面上的不同数字

【代码】LeetCode每日一题——统计桌面上的不同数字。

2024-03-23 14:10:14 388 1

原创 数据结构——顺序表

/断言i++)//逐个打印。

2024-03-23 00:53:02 1965 4

原创 LeetCode每日一题——x 的平方根

【代码】LeetCode每日一题——x 的平方根。

2024-03-22 21:17:54 448 1

原创 LeetCode每日一题——数组串联

【代码】LeetCode每日一题——数组串联。

2024-03-21 23:36:51 352

原创 LeetCode每日一题——最后一个单词的长度

58. 最后一个单词的长度 - 力扣(LeetCode)int src=0;int i=sz-1;int j=sz-1;for(i=sz-1;i>=0;i--)src=i;goto end;

2024-03-20 22:59:14 353 3

原创 LeetCode每日一题——删除有序数组中的重复项

【代码】LeetCode每日一题——删除有序数组中的重复项。

2024-03-19 23:28:48 467

原创 LeetCode每日一题——回文数

刚好为int的取值范围,在反转后可能会有溢出,那么我们定义变量的时候就不能使用int而是用。

2024-03-18 22:03:24 410 7

原创 LeetCode每日一题——移除元素

【代码】LeetCode每日一题——移除元素。

2024-03-16 23:04:10 577 7

原创 LeetCode每日一题——两数之和

j++)if(nums[i]+nums[j]==target)//判断两元素相加是否为整数目标值target//按照提示申请动态数组a[0]=i;//将得到的元素下标传入数组a[1]=j;//因为题目要求是两个数组下标,所以返回的数组大小为2return a;//返回数组return 0;复杂度分析。

2024-03-16 00:35:19 526 6

原创 经典数组和指针笔试题解析——C语言

1.数组和指针笔试题解析2.指针运算笔试题解析1.数组和指针笔试题解析1.1一维数组。

2024-03-14 21:58:24 605 11

原创 深入理解指针——C语言

1.内存和地址1.1内存在讲内存和地址之前,我们想有个生活中的案例:假设有⼀栋宿舍楼,把你放在楼里,楼上有100个房间,但是房间没有编号,你的⼀个朋友来找你玩,如果想找到你,就得挨个房子去找,这样效率很低,但是我们如果根据楼层和楼层的房间的情况,给每个房间编上号,如:有了,如果你的朋友得到房间号,就可以快速的找房间,找到你。

2024-03-14 00:36:02 1503 17

原创 空间复杂度的OJ练习——轮转数组

时间复杂度O(N^2)

2024-03-10 01:06:35 521 13

原创 数据结构——算法的空间复杂度

的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度也是一个数学表达式,是对一个算法在运行过程中。空间复杂度计算规则基本跟实践复杂度类似,也使用。空间复杂度不是程序占用了多少。

2024-03-09 15:30:37 469 1

原创 时间复杂度的OJ练习——面试题:消失的数字

求和i++)return num;

2024-03-09 13:46:25 413

原创 数据结构——算法的时间复杂度

如何衡量一个算法的好坏呢?斐波那契数列的递归实现方式非常简洁,但简洁一定好吗?那该如何衡量其好与坏呢?

2024-03-09 01:32:42 2460 1

原创 C语言自定义类型——联合和枚举

1.联合体类型的声明2.联合体的特点3.联合体大小的计算4.枚举类型的声明5.枚举类型的优点6.枚举类型的使用1.联合体1.1联合体类型的声明像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。所以联合体也叫:共用体。给联合体其中⼀个成员赋值,其他成员的值也跟着变化。

2024-03-07 23:48:07 1001 1

原创 C语言自定义类型——结构体(struct)

3.2为什么存在内存对⻬?⼤部分的参考资料都是这样说的:1.平台原因 (移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2.性能原因:数据结构(尤其是栈)应该尽可能地在⾃然边界上对⻬。原因在于,为了访问未对⻬的内存,处理器需要作两次内存访问;⽽对⻬的内存访问仅需要⼀次访问。假设⼀个处理器总是从内存中取8个字节,则地址必须是8的倍数。

2024-03-07 13:18:29 1080 3

原创 C++入门(1)

定义命名空间,需要使用到。

2024-03-04 13:30:14 832 2

原创 百度笔试题——设计⼀个小程序来判断当前机器的字节序(C语言实现)

型(要看具体的编译器),另外,对于位数⼤于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度⼤于⼀个字节,那么必然存在着⼀个如何将多个字节安排的问题。以字节为单位的,每个地址单元都对应着⼀个字节,⼀个字节为8bit 位,但是在C语⾔中除了8 bit 的 char。⼤端(存储)模式:是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。⼩端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处。喜欢的话请一键三连吧~~~

2024-03-03 21:18:40 563 1

原创 C语言内存函数——memcpy、memmove、memset、memcmp

C语言中常见的内存函数有四种,分别是:memcpy——内存拷贝(不可重叠)memmove——内存拷贝(可重叠)memset——内存设置memcmp——内存比较。

2024-03-03 19:39:59 992

原创 经典变态面试题——交换两个变量(不创建第三个变量)

异或:异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0^0=0,1^0=1,0^1=1,1^1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。啥如果你面试的时候面试官给你一道题说:“为了让我们的代码定义的变量少之又少,不要出现《屎山代码》,让你写一串代码,不创建第三个变量,从而交换两个变量。咳咳咳,言归正传,虽然该办法可取,但是有一个弊端,如果两个变量的和太大了int放不下,那么还是会出错。

2024-01-24 23:34:30 444 1

原创 求出0~100000之间的所有“水仙花数”并输出。

1.“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。思路:1.首先先确定这个数是几位数2.得出每位上的数是多少3.计算出每位数的n次方并相加4.判断是否与原数相等,相等则为水仙花数并输出int main()int i = 0;for (i = 0;i++)//归值//归值temp = i;//归值//求有几位count++;//每求一位指数+1temp = i;//归值。

2024-01-24 12:50:45 360 1

原创 二分查找——C语言算法

1.二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素必须是有序排列。

2024-01-23 16:49:36 432

分支与循环语句学习分享PPT

分支与循环语句学习分享PPT

2023-11-12

空空如也

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

TA关注的人

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