- 博客(39)
- 收藏
- 关注
原创 C++基础入门:从命名空间到函数重载
本文介绍了C++基础特性,包括命名空间、输入输出、缺省参数和函数重载。命名空间用于解决命名冲突问题,支持三种使用方法。C++的输入输出通过cout/cin实现,无需指定格式符。缺省参数分为全缺省和半缺省,需遵循从右向左连续赋值原则。函数重载允许同名函数存在,要求参数列表在类型、数量或顺序上不同。这些特性使C++在保留C语言优点的同时提升了开发效率和安全性。
2025-11-02 21:13:41
930
原创 LeetCode——1780.判断一个数字是否可以表示成三的幂的和
本文探讨如何判断一个整数是否可以表示为不同三的幂之和。通过分析示例发现,当对数字n进行三进制分解时,只要所有位上的数字都不为2,则该数可以表示为不同三的幂之和。解题方法是将n不断除以3,检查每次余数是否为2,若出现则返回false,否则最终返回true。该方法通过取模运算高效实现,时间复杂度为O(log₃n)。文中提供了C语言代码实现,验证了算法的正确性。
2025-08-14 10:26:03
302
原创 LeetCode——456. 132 模式
本文介绍了LeetCode 456题“132模式”的解法。题目要求在数组中找出满足i<j<k且nums[i]<nums[k]<nums[j]的子序列。文章提供了三种方法:1)暴力三重循环O(n³)解法;2)优化后的二重循环O(n²)解法;3)最优的单调栈O(n)解法。其中单调栈方法通过维护一个递减栈和变量max_k,从右向左遍历数组,高效判断132模式是否存在。文末还附上了单调栈解法的图示说明,帮助理解其工作原理。三种解法代码实现均已给出,但推荐使用单调栈以满足题目的大数据量要求。
2025-08-13 11:36:46
492
原创 LeetCode——241.为运算表达式设计优先级
文章摘要: LeetCode 241题要求为包含数字和运算符(+、-、)的表达式设计所有可能的优先级组合,并返回所有可能的计算结果。通过递归分治策略,将表达式拆分为左右子部分分别计算,再根据运算符组合结果。示例中,"2-1-1"返回[0,2],"23-4*5"返回[-34,-14,-10,-10,10]。C语言实现通过动态分配内存处理结果,递归分解纯数字时直接返回数值,遇到运算符则递归计算左右子表达式并组合运算结果。
2025-08-11 18:18:34
402
原创 LeetCode——983.最低票价
本文介绍了一个火车旅行最低消费问题,需要通过合理选择三种不同期限的通行证来最小化旅行成本。给定一个出游日期数组和三种票价的成本,采用动态规划方法,通过构建费用数组dp和出游标记数组Go,比较三种通行证方案(1日、7日、30日)的费用,选择最优解。代码实现中通过max和min函数比较不同方案,最终返回满足所有出游日期的最低费用。该方法有效解决了在给定日期内选择最经济通行证组合的问题。
2025-08-10 11:29:51
427
原创 Linux权限管理
本文系统介绍了Linux权限管理机制,主要内容包括:1)权限基础概念,区分root用户和普通用户的权限差异;2)用户切换与权限授予命令(su/sudo);3)文件权限系统(rwx权限组、数字/符号表示法);4)文件类型标识(普通文件-、目录d等);5)目录权限特性(r查看、w修改、x进入);6)默认权限计算(umask机制);7)共享目录设置方案(粘滞位t权限)。重点讲解了chmod/chown等权限修改命令的使用方法,并详细说明了权限数字表示法与符号表示法的转换规则。
2025-08-09 20:31:06
713
原创 Linux基础命令速查:从入门到精通
本文介绍了Linux操作系统的基本概念和常用命令。主要内容包括:1) 操作系统定义与作用;2) 基础命令如目录操作(ls/cd/mkdir)、文件操作(cp/mv/rm)、文本查看(cat/less)和处理(grep/wc);3) 重定向与管道操作;4) 文件系统特性与路径规则;5) 压缩解压工具(zip/tar)和文件传输命令(sz/rz/scp);6) 日期时间(date/cal)等实用命令。文章还特别强调了危险命令(如rm -rf)的使用注意事项,适合Linux初学者快速掌握系统基本操作。
2025-08-08 21:14:49
1111
原创 排序算法大全:从插入到快速排序
本文介绍了六种常见排序算法及其实现。插入排序通过逐个插入元素实现排序,希尔排序是其改进版本;冒泡排序通过相邻元素交换实现排序;选择排序每次选取最值元素;堆排序利用二叉堆结构;快速排序采用分治思想,包含hoare、挖坑和前后指针三种实现方式。这些算法涵盖从基础到高效的排序方法,适用于不同规模的数据处理需求,为日常编程中的排序问题提供了多种解决方案。所有算法均给出C语言实现代码,并附有部分算法的动态演示图。
2025-08-02 19:39:53
876
原创 堆排序与Top K问题精解
堆是一种完全二叉树数据结构,分为最大堆(父节点值≥子节点)和最小堆(父节点值≤子节点)。本文详细介绍了堆的实现方法,包括初始化、插入/删除数据时的向上/向下调整操作,以及获取堆顶、判断空堆等功能。重点讲解了堆排序算法,通过建堆和调整实现O(nlogn)的排序效率,并分析了升序/降序时选择大/小堆的原因。最后探讨了Top K问题的解决方案,通过建立适当堆结构高效查找前K个极值。文章配有图示和完整C语言代码实现,帮助理解堆的核心操作和应用场景。
2025-07-23 17:00:00
446
原创 深入解析二叉树链式存储结构
本文深入探讨了二叉树的链式存储结构实现。首先介绍了二叉链表节点的定义,包含数据域和左右孩子指针。随后详细讲解了核心操作的实现:包括节点初始化、递归创建二叉树、计算树的高度、统计非空节点数、查找叶子节点数、获取第K层节点数以及查找指定节点等。重点分析了二叉树的四种遍历方式(前序、中序、后序和层序遍历),其中层序遍历需借助队列实现。文章还提供了快速创建二叉树的示例代码,并通过图示说明各种操作的执行过程。相比顺序存储,链式存储能更灵活地表示树形结构,尤其适合处理非完全二叉树的情况。
2025-07-23 07:00:00
588
原创 二叉树:从理论到实现的全面解析
本文全面解析了二叉树的理论与实现。首先介绍了树的基本概念,包括树的定义、相关术语和节点结构表示法。重点讲解了二叉树的特性和常见类型(满二叉树、完全二叉树、二叉搜索树),并详细阐述了二叉树的性质。在实现部分,文章分别探讨了二叉树的顺序存储和链式存储结构,提供了具体的结构定义和初始化方法。特别对顺序存储结构下的父子节点位置关系进行了公式推导,并给出了创建二叉树的代码实现,包括节点输入、空间扩容和错误检测等功能。文章内容系统全面,涵盖了二叉树从基础概念到实际应用的关键知识点。
2025-07-22 07:00:00
699
原创 String标准库
strcpy strncpy memcpy memmove strcat strncat strcmp strncmp memcmp strstr strtok strerror memset
2023-09-17 15:00:00
211
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅