自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python基础与算法查漏补缺

可变参数是Python函数中一种灵活的参数传递方式,允许函数接受任意数量的参数。**kwargs:用于接受任意数量的关键字参数,并将其打包成一个字典。*args:用于接受任意数量的位置参数,并将其打包成一个元组。一个数是素数,那么他的倍数一定不是素数。让你的input速度快3-5倍。借助栈解决后缀表达式的求值问题。多个for循环进行嵌套的简写。

2025-03-31 11:17:40 151

原创 Python补题——0连连看

右对角线由i+j标识,左对角线由j-i标识。

2025-03-25 11:01:14 236

原创 Python数据结构——栈、队列、双端队列、单向链表、双向链表

在编程的世界里,数据结构是构建算法的基石,也是优化代码效率的灵魂。无论是解决括号匹配的经典问题,还是设计高并发的任务调度系统,等基础结构始终扮演着关键角色。而作为动态内存管理的“魔术师”,更是从底层逻辑上展现了数据存储的灵活性与智慧。

2025-03-21 14:06:35 450

原创 Python算法——搜索(BFS和DFS)

核心思想:逐层遍历,优先访问距离起始节点最近的节点。使用队列实现,确保按层次展开。特点保证找到无权图中的最短路径(边数最少)空间复杂度较高,需存储每一层的节点(O(b^d),b为分支因子,d为深度)选择依据:优先BFS解决最短路径问题,DFS用于内存敏感或需深度探索的场景代码实现关键:标记已访问节点避免重复遍历,合理选择数据结构(队列/栈)

2025-03-12 15:24:00 379

原创 Python算法——前缀和与差分

前缀和与差分通过预处理与逆运算思想,将复杂问题拆解为高效操作,是解决区间问题的核心工具。二者在算法竞赛和工程中广泛应用,例如动态规划优化、矩阵运算、数据统计等场景。实际应用中需根据问题特点选择合适策略,必要时结合两者优势设计复合算法。

2025-03-03 10:29:12 231

原创 Python算法——贪心

贪心算法(Greedy Algorithm)是一种通过局部最优选择逐步逼近全局最优解的算法设计思想。其核心在于每一步决策时,仅考虑当前状态下的最优解,而不回溯或预测未来状态特点:高效性(时间复杂度低)、简单性(代码实现简洁)、无后效性(当前决策不影响后续状态)适用条件:需满足贪心选择性质(局部最优能推导全局最优)和最优子结构(问题的最优解包含子问题的最优解)贪心算法因其简洁高效的特点,成为解决特定问题的利器。验证贪心策略的可行性,通过数学归纳或反例分析。对比其他算法(如动态规划),权衡时间与空间复杂度。

2025-03-02 21:28:43 306

原创 Python算法——十大排序

在编程世界中,排序算法如同整理信息的魔法,理解它们是程序员的关键内功。Python凭借其简洁的语法,成为实践排序思想的绝佳试验场。本文将用Python代码为你拆解十种经典排序算法,理解这些优雅的逻辑舞蹈,你将重新认识数据排列背后的计算机美学。

2025-02-20 14:12:39 129

原创 Python——深浅拷贝

仅复制对象的顶层结构,不递归复制嵌套的子对象。新对象和原对象共享子对象的引用。递归复制对象的所有层级,生成完全独立的新对象。新对象和原对象无任何引用共享。

2025-02-12 15:07:37 361

原创 Python入门——公共操作

Python中的公共操作指的是适用于多种数据类型的通用函数、运算符和方法。

2025-02-10 20:54:44 159

原创 Python入门——集合

是一种无序、不重复元素的数据结构,常用与去重、成员检测和数学集合运算(如并集、交集等)。:基于哈希表实现,成员检测(in)的时间复杂度为O(1)。issuperset()/>=:判断是否为超集。issubset()/<=:判断是否为子集。isdisjoint():判断是否无交集。:元素没有固定顺序,不支持索引访问。:元素不可重复,自动去重。len(s):获取元素个数。:快速去除列表中的重复元素。copy():浅拷贝集合。:高效判断元素是否存在。:集合本身可修改,但。元素必须是不可变类型。

2025-02-10 15:50:50 214

原创 python入门——字典

字典是Python中最常用的数据结构之一,熟练掌握其用法会极大提升代码效率!

2025-02-07 21:15:22 280

原创 python入门——元组

元组是轻量级、不可变的数据结构,适用于需要数据保护或作为哈希键的场景。虽然操作不如列表灵活,但在性能和安全性方面具有优势。

2025-02-07 17:05:14 202

原创 python入门——列表

在python中,列表是一种有序的可变数据类型,用于储存一系列元素。可以使用[ ]来创建列表,元素之间用逗号分隔。#nilu在python中,列表是可迭代对象,所以我们可以进行循环读取操作'''shaldnilunavia'''

2025-01-27 14:36:30 203

原创 python入门——字符串

字符串是由零个或多个字符组成的有序序列,可以使用单引号(' ')、双引号(" ")或三引号(''' '''或""" """)来表示。python'''

2025-01-26 13:49:33 350

原创 数据结构——二叉树

树是一种非线性的数据结构。从逻辑角度来看,树呈现一种一对多的层次关系,常用与表示具有层次关系的各类数据,比如组织机构架构、文件系统目录结构等。

2025-01-10 21:46:02 374

原创 数据结构--队列

队列呈现出一种线性的逻辑结构,元素之间按照先后顺序依次排列,有明确的头(front)和尾(rear)。新元素通常从队尾(rear)进入队列,而要获取或移除元素时,则是从队头(front)进行操作。

2024-12-03 21:21:36 336

原创 数据结构--栈

栈是一种重要的数据结构。它是一种特殊的线性表,数据元素之间呈线性关系。栈只能在一端进行插入和删除操作,这一端被称为栈顶(top) , 另一端为栈底(bottom)。

2024-12-01 16:25:22 784

原创 数据结构小技巧--虚拟头节点

在数据结构(如链表)中,虚拟头结点是一个额外添加的节点。以链表为例,它位于真正的头节点之前。它的主要作用是简化链表的操作。比如在插入节点作为新的头节点时,在插入新的头节点时,如果没有虚拟头节点,需要单独处理插入头节点这种特殊情况;有虚拟头节点的情况下,代码逻辑会更简洁。这种差距在单链表的插入时很具体,不用虚拟头节点时,需要判断是否为第一个节点,然后进行插入操作;

2024-11-24 18:46:16 656

原创 双指针算法

两个指针以不同的速度在数据结构中移动。通常快指针每次移动的步长比慢指针大。两个指针分别从数据结构的两端开始,向中间移动。一般用于已排序的数据结构,如有序数组。双指针有利于提高算法效率,相较于一些暴力算法,通过双指针能减少不必要的遍历次数,降低时间复杂度;算法相对简洁清晰,在处理一些数据结构问题时,能以较为直观的方式完成任务。双指针是一种处理数组、链表等数据结构非常有效的技巧,掌握好它有利于更好地解决很多编程中的实际问题。

2024-11-16 18:44:28 954

原创 冒泡排序详解

冒泡排序是一种稳定的内部排序算法,它的实现原理是重复遍历数组,比较其相邻的两个元素,将其按从小到大(或从大到小,看具体的代码)重新排序,它的平均时间复杂度为O(),最好情况为O(n),最坏情况为O(),空间复杂度为O(1)。在代码实现部分呢大家可以根据自己的需要开大小合适的数组。

2024-11-09 19:34:21 328

原创 单向链表的删除与插入操作

插入节点在已按升序或降序的链表中使用,在这里只展示函数,此函数也可用作建立升序链表。(先是删除的,其余部分的解释在上一篇博客)

2024-10-31 20:00:00 262

原创 单向链表的建立(C语言)

对数组进行插入和删除操作时需移动大量数据,同时数组属于静态内存分配,程序运行其长度就不能再改变。解决以上问题的方法就是使用动态数据结构。结构体和指针配合使用可以表示许多复杂的动态数据结构,其中就包括链表,在这一篇我会分享最基础的单向链表的建立,显示和释放,适合新手学习~~如果有更好想法欢迎一起讨论~~

2024-10-30 19:45:28 215

原创 高精度整数加法的实现

C语言的基本数据类型(如int,long等)表示的数据范围有限,当处理非常大的整数时,基本数据类型就无法满足要求。此外,在密码学、数论等学科领域,常常会涉及到大整数运算,这些大整数的规模远远超出了C语言普通数据类型的范围,所以必须使用高精度计算方法来处理。,使用最基础的C语言在Dev-C++和VS 2022上运行的代码。以上是Dev-C++的代码,VS 2022的代码要更复杂些。在这里,我提供高精度加法纯新手向的代码,高精度减法的思路大致相同。使用C++需要修改为。

2024-10-26 15:50:45 230 2

空空如也

空空如也

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

TA关注的人

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