自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 只出现一次的数字(两种解法)

本文介绍了两种方法解决"只出现一次的数字"问题,其中其他数字恰好出现三次。第一种方法是按位统计+模k,统计每位出现1的次数,若不被3整除则该位在结果中为1。第二种方法是使用位状态计数器(有限状态机),利用两个变量ones和twos模拟每一位的状态转移(0次→1次→2次→0次),最终ones保留只出现一次的数字。两种方法都利用了位运算的高效性,时间复杂度均为O(n),空间复杂度为O(1)。状态机方法更为巧妙,通过位运算实现状态转移而不需要额外存储空间。

2025-08-12 20:11:21 513

原创 移除链表元素

本文介绍了移除链表中指定元素的两种实现方法。第一种方法通过遍历链表,使用标志位区分头节点处理,跳过需要移除的节点并重新连接链表。第二种是课程提供的标准解法,区分头节点和非头节点情况,直接释放要移除的节点内存。两种方法都实现了O(n)时间复杂度的链表遍历,但第二种方法更规范地处理了内存释放问题。文末包含测试代码,可验证链表操作的正确性。

2025-08-11 21:00:20 122

原创 删除有序数组中的重复项

本文介绍了一个删除有序数组中重复项的算法。使用双指针法,其中dst指针指向下一个唯一元素的位置,通过遍历数组(src指针)检查当前元素是否已存在于前面的部分。若未出现则拷贝到dst位置,并移动dst指针。最终返回处理后数组的新长度。这种方法时间复杂度为O(n²),空间复杂度O(1)。

2025-08-11 10:42:43 108

原创 数组形式的整数加法

本文实现了一个将数组形式的整数与普通整数相加的算法。通过逐位相加并处理进位的方式,将数组形式的数字(如[1,2,0,0])与整数(如34)相加。算法首先确定两个数的位数差,然后从最低位开始相加,处理进位后存储结果。最终结果需要进行逆序处理以获得正确的数字顺序。该解法的时间复杂度为O(max(n,logk)),空间复杂度为O(max(n,logk)+1),其中n是数组长度。示例演示了输入[1,2,0,0]和34相加得到正确结果[1,2,3,4]的过程。

2025-08-11 10:13:17 307

原创 反转链表(两种方法)

本文介绍了两种反转单链表的方法:直接反转法和头插法。直接反转法使用三个指针n1、n2、n3遍历链表,逐个反转节点指向,最后返回新的头节点n1。头插法利用prev和cur两个指针,通过不断将当前节点插入到prev前实现反转,最后prev成为新头节点。两种方法时间复杂度均为O(n),空间复杂度O(1)。头插法代码更简洁,但需要处理头节点的next置空问题。两种方法都能高效完成单链表反转任务。

2025-08-10 21:15:25 685

原创 2、单链表介绍

摘要:单链表是一种非连续存储的线性数据结构,通过指针连接节点。与顺序表相比,单链表的缓存命中率较低(因内存不连续),但插入删除效率更高。在工程应用上,顺序表适合频繁遍历,单链表适合频繁增删。本文详细介绍了单链表的结构特点、类型对比,并用C语言实现了创建节点、尾插尾删等基本操作,解释了二级指针在链表操作中的必要性。通过对比分析,为不同场景下的数据结构选择提供了实用建议。

2025-08-04 16:59:21 857

原创 1、数据结构前言

本文摘要: 数据结构与算法基础概念解析 数据结构:计算机存储和组织数据的方式,是特定元素集合的相互关系。 算法复杂度: 时间复杂度:衡量算法执行效率的关键指标,表示基本操作次数的增长趋势 空间复杂度:衡量算法所需额外存储空间 常见时间复杂度分析: O(1):常数时间(数组访问) O(log n):对数时间(二分查找) O(n):线性时间(遍历) O(n²):平方时间(嵌套循环) 顺序表实现: 静态顺序表:固定长度数组 动态顺序表:支持扩容的动态数组 包含初始化、容量检查等基础操作 文章通过代码示例详细说明了

2025-08-03 09:26:38 894

原创 Git使用教程

本文介绍了Git和GitHub的基本概念及使用教程。Git是分布式版本控制系统,由Linus Torvalds开发;GitHub是基于Git的代码托管平台,提供协作工具。文章详细列举了Git常用命令,包括初始化、提交、分支管理和远程操作等。重点讲解了如何通过SSH Key实现Git与GitHub的安全绑定,并提供了从项目初始化到提交的完整操作流程。这些内容为开发者提供了Git和GitHub的基础使用指南,帮助实现高效的代码管理和团队协作。

2025-08-02 12:56:32 753

空空如也

空空如也

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

TA关注的人

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