自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第 12 章 高级函数

本文系统介绍了Python中的一等对象、装饰器、生成器和迭代机制。一等对象指函数可以像变量一样被赋值、传递和存储,支持高阶函数编程模式。装饰器是一种语法糖,用于在不修改原函数代码的前提下添加功能,广泛应用于框架开发。生成器通过yield实现惰性计算,适合处理大数据流。迭代机制包括可迭代对象和迭代器协议,是for循环的基础。此外还讲解了标准输入输出和管道操作,展示了UNIX风格的模块化程序设计思想。这些特性共同构成了Python函数式编程和高效数据处理的核心能力。

2025-12-17 09:42:03 282

原创 第 11 章 错误处理与异常

本文系统介绍了Python程序中的异常处理机制。首先区分了语法错误、逻辑错误和异常三种问题类型,重点讲解了异常处理的EAFP(请求原谅比请求许可更容易)原则及其优势。详细说明了try-except-else-finally语法结构,列举了TypeError、ZeroDivisionError等常见异常类型。文章还探讨了主动抛出异常、异常顺序处理、卫语句优化等进阶技巧,并介绍了上下文管理器和Pylint工具的使用。最后阐述了单元测试的重要性,为构建健壮的Python程序提供了全面的异常处理方案。

2025-12-13 13:58:47 646

原创 第 10 章 模块和包

Python模块化编程摘要 Python模块化编程通过将代码拆分为多个.py文件来提升项目可维护性。核心内容包括: 模块优势:提升代码复用性、增强可读性、便于团队协作、降低维护成本 导入方式: import module:最安全清晰 import as:简化长模块名 from import:选择性导入 from import *:不推荐(易命名冲突) 查找机制: sys.path决定模块搜索路径 自定义模块可放在主程序目录、site-packages或通过PYTHONPATH配置 命名空间: 遵循LEGB规

2025-12-10 11:15:10 388

原创 第 9 章 面向对象编程

本文全面介绍了Python面向对象编程(OOP)的核心概念与实践。主要内容包括:类与对象的基础概念,init()构造方法和实例方法的使用;类属性、静态方法与类方法的区别与应用场景;继承机制及其super()的使用,以及Python特有的多重继承与C3线性化算法;封装概念与私有成员的实现方式;Python特有的OOP风格,包括@property装饰器的使用;哈希函数的原理与__hash__()方法的实现;以及各种双下划线方法(如__str__、__repr__等)的作用与区别。文章通过丰富示例展示了Pytho

2025-12-10 11:14:02 916

原创 第 8 章 Python 中的 I/O

本文系统介绍了Python中I/O操作的核心概念与应用。主要内容包括:1. 文件I/O基础,详细讲解open()、read()、write()等文件操作函数及文件指针管理;2. 文件编码处理,强调显式指定编码的重要性;3. with语句的自动资源管理机制;4. 文件删除操作;5. 用户输入处理与input()函数;6. 通过猜数游戏和井字棋游戏展示I/O与逻辑控制的综合应用;7. 序列化技术,对比pickle、shelve和json模块的特点与适用场景。全文提供了大量实用代码示例,帮助开发者掌握Python

2025-12-08 10:36:13 640

原创 第 7 章 Python 编程案例实践

这篇Python编程练习合集涵盖了基础到中级的各类题目。内容分为四个部分:简单练习I(循环输出、字符处理、列表统计等)、简单练习II(图形打印、乘法表、大小写转换等)、中级练习I(排序算法、质数判断、回文检测等)和中级练习II(质因数分解、列表交集、嵌套列表展开等)。每个题目都提供了标准解法代码和测试案例,涉及range循环、列表推导式、字符串处理、递归等核心编程概念,循序渐进地培养编程思维和算法能力,适合Python初学者系统练习语法和逻辑。

2025-11-11 12:01:22 448

原创 第 6 章 Python 杂项知识

本文系统介绍了Python编程中的命名规则、规范与Pythonic风格。首先阐述了Python变量的基本命名规则,包括必须以字母或下划线开头、区分大小写等语法要求,并详细解释了PEP8命名规范对不同类型标识符的命名建议。其次深入探讨了"Pythonic"这一概念,通过实例对比展示了符合Python设计哲学的优雅写法,如列表推导式和解包赋值等。最后解析了"Python之禅"的核心思想,强调代码应追求优美、明确、简单和可读性。这些内容为编写高质量Python代码提供了全面

2025-11-04 08:41:11 656

原创 第 5 章 函数和方法

本文摘要:Python函数与方法的核心区别在于:函数是独立代码块,直接调用;方法必须依附对象,通过"对象.方法名"调用。函数定义使用def关键字,可通过return返回值,支持位置参数、默认参数、可变参数(*args/**kwargs)等多种传参方式。高阶函数(map/filter等)以函数为参数,配合lambda匿名函数可简化代码。变量作用域遵循LEGB规则,需注意global/nonlocal声明。Python中函数是一等对象,可赋值、传参和返回,但需避免覆盖内置函数名。理解这些概念

2025-11-03 16:58:15 780

原创 第 4 章 Python 控制流

本文系统介绍了Python编程中的控制流结构,包括条件判断、循环语句和辅助工具。主要内容涵盖:1. 条件结构:if-elif-else语句和Python 3.10引入的match-case模式匹配;2. 循环结构:for循环和while循环的使用场景及嵌套循环;3. 控制语句:pass、break、continue的作用机制;4. 常用函数:range()、enumerate()和zip()的高效使用方法;5. 推导式:列表、字典、集合和生成器推导式的语法及应用。文章通过丰富示例展示了各种控制流结构的实际应

2025-10-27 12:18:09 655

原创 第 3 章 运算符、真值与假值

Python运算符是执行运算的特殊符号,可分为算术、赋值、比较、逻辑、位运算等类型。比较运算符(如==、!=)用于值比较,返回布尔结果;赋值运算符(如=、+=)用于变量赋值与复合运算;逻辑运算符(and/or/not)处理布尔值,支持短路求值优化;位运算符对二进制位直接操作。Python中所有对象都有真值性,非空/非零为True。短路求值机制在逻辑表达式中可提升效率并避免错误,是条件判断的重要特性。掌握各类运算符及特性是编写高效Python代码的基础。

2025-10-23 09:09:47 588

原创 第 2 章 Python 数据类型

本文系统介绍了Python的基础语法和常用数据类型。主要内容包括:1. Python语法规则:区分大小写、代码块缩进要求等;2. 常用数据类型:数字(int/float)、字符串、布尔值、列表、字典、元组和集合的特性及操作;3. 核心概念:变量的赋值方式(按值/引用)、函数定义、类型检查、注释规范等;4. 数据处理方法:字符串拼接、列表排序、集合运算等实用技巧;5. 特殊类型:None、复数等补充说明。文章强调Python作为动态类型语言的特点,并对比了可变与不可变对象的差异,为后续编程实践打下基础。

2025-10-22 10:34:39 1263

原创 第 1 章 Python 简介

本文介绍了Python课程的主要内容,包括Python语言的基本概念、学习优势、应用场景及缺点分析。Python作为解释型高级语言,具有易学、表达力强、可读性高、跨平台等优势,广泛应用于数据分析、AI等领域,但也存在运行速度较慢等缺点。课程详细讲解了Windows和Mac系统下通过Anaconda搭建Python开发环境的步骤,包括安装VSCode编辑器及必要扩展插件。通过本课程,学习者将掌握Python基础并完成开发环境配置。

2025-10-17 09:39:06 710

原创 用100道题拿下你的算法面试(数组篇-11):大数的阶乘

摘要:本文探讨了大数阶乘的计算方法,针对传统方法无法处理大数的问题,提出了三种解决方案:(1)使用数组存储逐位计算结果,通过逐位乘法和进位处理实现;(2)利用BigInteger类直接计算;(3)采用链表结构存储数据,动态扩展存储空间。文中详细阐述了每种方法的算法原理,并用C++、Java、Python、C#和JavaScript五种语言实现。重点剖析了数组法的核心逻辑,包括初始化、逐位乘法和进位处理流程。测试案例以100的阶乘(158位数字)为例,展示了各种方法的具体实现和输出结果,同时分析了时间复杂度(

2025-06-26 20:44:04 1123 1

原创 Vue.js 与 TypeScript:最佳实践

本文介绍了在Vue.js中集成TypeScript的最佳实践,内容包括项目搭建、组件开发、类型管理与性能优化。首先讲解了如何使用Vue CLI创建TypeScript项目,然后通过示例展示了如何编写类型安全的Vue组件,包括接口定义props、类组件和使用生命周期钩子。文章还提供了两个实用案例:待办事项应用和API数据获取,并建议使用Composition API提升性能,强调类型校验对安全性的重要性。最后总结了关键要点,推荐进一步学习Vue3新特性和TypeScript高级功能,为构建健壮可维护的Vue应

2025-06-25 11:52:20 1259

原创 15.8 【TS中级项目】像素艺术制作器

摘要:本文介绍了一个基于TypeScript的像素画制作器Web应用开发方案。项目采用DOM操作实现核心功能,包含HTML/CSS布局和TypeScript交互逻辑。系统提供20×20的可调网格(默认值),支持鼠标点击/拖拽绘制、颜色选择(默认橙色)、网格重置和尺寸调整功能。关键技术包括CSS变量(--sz)动态控制网格尺寸,事件监听实现绘制交互,以及完整的组件联动机制。所有代码已整合为可直接运行的HTML文件,无需额外编译步骤。

2025-06-25 11:00:34 427

原创 用100道题拿下你的算法面试(数组篇-10):盛最多水的容器

摘要:本文探讨了求解容器最大盛水量的两种算法。给定一个非负整数数组表示垂直线高度,要求找出任意两线与x轴形成的容器能容纳的最大水量。朴素方法通过双重循环枚举所有线对,计算每对容器的面积(min(高度)*宽度),时间复杂度O(n²)。更优的双指针法维护左右指针,每次移动较短边的指针,时间复杂度优化至O(n)。两种方法在C++、Java、Python等6种语言中的实现均给出示例代码,对于输入[2,1,8,6,4,6,5,5],正确输出最大水量25。双指针法显著提高效率,适合处理大规模数据。

2025-06-25 10:33:17 1077

原创 用100道题拿下你的算法面试(数组篇-09):3 Sum 问题——查找所有和为零的三元组

本文介绍了寻找数组中所有和为0的三元组下标(i<j<k)的两种解法。朴素方法采用三重循环枚举所有可能的三元组,时间复杂度O(n³),空间复杂度O(1)。更优算法使用哈希表存储元素索引,通过两层循环查找满足条件的第三元素,平均时间复杂度优于朴素方法,但最坏情况仍为O(n³),空间复杂度O(n)。两种方法在示例输入arr={0,-1,2,-3,1}中均输出{{0,1,4},{2,3,4}}。文章提供了6种语言的朴素方法实现和5种语言的哈希表实现代码。

2025-06-24 16:57:26 421

原创 用100道题拿下你的算法面试(数组篇-08):在旋转排序数组中查找

本文探讨了在旋转排序数组中查找目标元素的算法问题。首先介绍了朴素线性搜索法(O(n)时间复杂度),并用6种编程语言实现。然后提出两种优化方法:1)两次二分查找法(先找旋转点再二分,O(logn));2)单次二分查找法(通过判断有序区间直接搜索,O(logn))。两种优化方法均用6种语言详细实现,其中单次二分法更为高效,只需一次遍历即可确定目标位置。所有算法空间复杂度均为O(1),适用于处理大规模旋转排序数组的搜索问题。

2025-06-23 19:42:16 839

原创 14. TypeScript 测试

摘要:本文详细介绍了使用Jest框架进行TypeScript单元测试的方法,包括环境配置、测试流程和异步测试示例。同时对比了Jest与Mocha测试框架的特性差异,指出Jest适合快速搭建的React项目,而Mocha更适合需要定制化的复杂项目。文章还深入讲解了Mocking技术在单元测试中的应用,包括测试替身类型(Mock、Stub、Fake、Spy)及其选择策略,强调Mocking能有效隔离外部依赖,提高测试可靠性和执行效率。最后总结了Mocking的最佳实践,建议合理使用测试替身来构建高质量的测试体系

2025-06-23 12:23:42 970

原创 13. TypeScript 模块

TypeScript的模块系统提供代码封装与复用方案,分为内部模块(现为命名空间)和外部模块。外部模块通过export/import实现功能拆分,避免命名冲突,提升维护性。最佳实践推荐使用ES模块语法,配合barrel文件简化导入路径。模块增强特性允许在不修改源码情况下扩展第三方库功能,通过declare module语法实现。典型案例展示了如何将公共类独立封装后复用,解决了重复定义问题,同时指出模块顶层代码的执行特性。模块化开发有效应对大型应用的性能、调试和维护挑战。

2025-06-22 16:47:28 1219

原创 12. TypeScript 高级类型

TypeScript提供了多种高级类型工具,包括映射类型、条件类型、字面量类型和递归类型等。映射类型通过转换现有类型属性创建新类型,支持可选、只读和类型变更等操作。条件类型根据条件动态生成类型,增强代码灵活性。字面量类型限定变量为特定值,提高类型安全性。递归类型支持自引用,适合处理树形结构等复杂数据。这些特性共同增强了TypeScript的类型系统,使开发者能够构建更安全、灵活和可维护的代码。

2025-06-22 09:49:19 1437

原创 用100道题拿下你的算法面试(数组篇-07):在旋转排序数组中寻找最小值

本文探讨了在旋转后的有序数组中寻找最小元素的两种方法。线性查找方法遍历整个数组,时间复杂度为O(n);更高效的二分查找方法通过比较中间元素与端点值,将时间复杂度优化到O(logn)。文章提供了两种算法的详细实现,涵盖C++、C、Java、Python、C#和JavaScript六种编程语言。对于示例数组[5,6,1,2,3,4],两种方法均能正确输出最小值1。二分查找法凭借其对数级时间复杂度,成为处理大规模数据的首选方案。

2025-06-21 16:42:01 564

原创 1-3 Dart 注释详解:单行、多行与文档注释全掌握

Dart编程中的注释技巧全面解析:Dart支持三种注释方式,分别是1️⃣单行注释(//)用于简短说明,2️⃣多行注释(/.../)适用于代码块解释,3️⃣文档注释(///或/**...*/)用于生成API文档。良好注释习惯能提升代码可读性、调试效率和团队协作,建议为公开API添加详细文档注释。本文通过实例演示各类注释用法,并强调保持注释与代码同步的重要性,帮助开发者编写更易维护的Dart代码。

2025-06-21 16:06:54 607

原创 用100道题拿下你的算法面试(数组篇-06):最大乘积子数组

本文探讨了寻找数组中连续子数组最大乘积的问题,提供了三种解法: 朴素解法(O(n²)时间复杂度):使用双重循环遍历所有子数组并计算乘积,记录最大值。适合小规模数据但效率较低。 动态规划解法(O(n)时间复杂度):维护当前最小和最大乘积变量,处理负数和零的特殊情况,在单次遍历中得出结果。 双向遍历解法(O(n)时间复杂度):分别从左到右和从右到左遍历数组,处理奇数个负数的情况,确保不遗漏任何可能的最大乘积子数组。 所有解法在示例输入[-2,6,-3,-10,0,2]上都输出正确结果180。后两种O(n)解法更

2025-06-21 14:49:43 1190

原创 11. TypeScript 工具类型

TypeScript内置的工具类型(Utility Types)提供了一种高效的方式来变换和操作现有类型。常见工具类型包括:Partial将属性设为可选,Required设为必填,Readonly设为只读;Pick选择特定属性,Record创建键值对象类型;Exclude从联合类型中移除部分元素。这些工具类型能提升代码复用性、可读性和维护性,适用于表单处理、API数据转换等场景。合理组合使用这些工具类型,可使类型定义更精简高效,是TS开发的重要技能。

2025-06-20 19:18:34 898

原创 10. TypeScript 装饰器

TypeScript 中的类装饰器是一项强大的功能,允许你以简洁、声明式的方式扩展和修改类。它们使你能够在不改变原始类定义的情况下,添加方法、属性或跟踪实例。这使得代码更加模块化、可复用且更易于维护。无论是添加日志功能、收集实例,还是为类增强新功能,类装饰器都能帮助你编写更高效、更有效的 TypeScript 代码。

2025-06-20 19:08:38 914

原创 用100道题拿下你的算法面试(数组篇-05):最大子数组和 - 卡丹算法

摘要:本文介绍了求解最大子数组和的两种方法。朴素解法通过双重循环遍历所有子数组,时间复杂度O(n²),空间复杂度O(1)。更优的卡丹算法(Kadane's Algorithm)采用动态规划思想,只需单次遍历数组,时间复杂度O(n),空间复杂度O(1)。其核心思路是:对于每个元素,选择将其加入前一个最大子数组或单独开始新子数组。文章提供了两种算法在C++、C、Java、Python、C#和JavaScript中的实现代码,并验证了示例输入的正确输出。卡丹算法显著提升了效率,是解决该问题的标准优化方案。

2025-06-19 17:39:12 487

原创 9. TypeScript 泛型

TypeScript泛型提供了灵活的类型安全机制,允许创建可重用组件。文章介绍了泛型的基本概念、语法及应用场景:1. 泛型函数能处理多种数据类型;2. 泛型约束通过extends限制类型范围;3. 泛型接口支持单类型和多类型参数;4. 类泛型使实例创建更灵活;5. 泛型对象类型处理不同数据结构。通过示例展示了数组反转、接口实现、工厂函数等常见用法,强调泛型在提高代码复用性和类型安全性方面的重要作用。

2025-06-18 22:09:25 972

原创 用100道题拿下你的算法面试(数组篇-04):除了自身以外数组的乘积

摘要:本文介绍了三种计算数组中除当前元素外所有元素乘积的方法。朴素方法使用嵌套循环,时间复杂度O(n²),空间复杂度O(1);优化方法利用前缀和后缀乘积数组,将复杂度降至O(n)时间、O(n)空间;最高效方法通过统计零元素情况,在O(n)时间和O(1)空间内解决问题。文中给出了C++、Java、Python等语言的实现示例,并分析了各算法的复杂度。对于输入[10,3,5,6,2],三种方法都能正确输出[180,600,360,300,900]。

2025-06-17 18:07:23 582

原创 鸿蒙案例实战——添加水印

本文介绍了在HarmonyOS应用开发中实现水印添加功能的多种方法。主要包含四种水印添加场景:1)使用Stack布局或Overlay属性为页面添加Canvas绘制的水印;2)为保存图片添加水印,通过获取PixelMap数据并绘制水印后保存;3)拍照后对照片添加水印,处理相机返回的图片文件;4)为PDF文件添加文字水印并保存。关键技术点包括Canvas绘图、Stack层叠布局、PixelMap图像处理、PDF服务调用等,采用MVVM架构和ArkTS语言实现。案例提供了完整的组件封装和工具类,涵盖了从UI展示到

2025-06-17 10:30:32 1152

原创 15.7【TS中级项目】打字速度监测器

摘要:本文介绍了一个打字速度测试Web应用的开发过程,通过测量用户输入随机文本段落的时间和准确率来计算每分钟打字字数(WPM)。应用包含HTML/CSS界面和TypeScript逻辑,主要功能有:显示测试文本的文本框、计时器、WPM计算器和开始按钮。核心算法通过监听用户输入事件,比较输入文本与原文的匹配度,并实时计算打字速度。该工具特别适合程序员测试编码效率,其简洁的设计和即时反馈机制为用户提供了便捷的打字能力评估方式。

2025-06-16 18:04:20 532

原创 统一扫码服务

摘要 HarmonyOS ScanKit(统一扫码服务)提供系统级扫码解决方案,支持"扫码直达"、码图识别与生成功能。案例展示了如何通过API实现: 扫码直达:只需注册域名即可通过系统入口快速跳转应用 码图生成:支持自定义格式的条形码/二维码,可设置颜色、边距等参数 默认界面扫码:调用系统预设界面,支持单/多码识别 自定义扫码:完全自定义UI界面,提供相机流控制和闪光灯管理 图像识码:从相册识别图片中的条形码/二维码 案例采用ArkTS开发,使用MVVM模式,包含权限申请、日志管理、资源

2025-06-16 17:48:08 1189

原创 用100道题拿下你的算法面试(数组篇-03):查找重复元素

文章摘要:本文介绍了两种在数组中查找重复元素的方法。第一种使用哈希表,通过统计元素频率来识别重复项,适用于元素范围不确定的情况。第二种利用辅助数组,当元素范围在0到n-1时,通过频率统计高效找出重复元素。两种方法都实现了O(n)的时间和空间复杂度。文章提供了C++、Java、Python、C#和JavaScript五种语言的实现代码,并展示了示例输入[1,6,5,2,3,3,2]对应的正确输出[2,3]。两种方法都能正确处理无重复元素的情况(返回-1)。

2025-06-15 09:17:05 528 1

原创 基于CameraKit通过AVRecorder录像

本示例通过CameraKit自定义相机,并通过AVRecorder进行录像。帮助开发者在自定义相机的场景开发中,实现使用AVRecorder录像的功能。

2025-06-15 07:25:51 1211

原创 8. TypeScript 类

TypeScript类提供了面向对象编程的核心特性,包括封装、继承和多态。通过访问修饰符(public/private/protected)控制成员可见性,抽象类强制子类实现特定方法,构造函数参数类型检查确保对象初始化的安全性。继承机制允许代码复用和方法重写,其中super关键字可调用父类方法。类可以建模现实实体,如银行账户、几何图形等,通过定义属性和方法实现业务逻辑。TypeScript的类型系统增强了类的安全性,使其成为构建复杂应用的理想选择。

2025-06-14 19:02:33 962

原创 实现文件管理案例实战

当用户需要保存图片、视频等用户文件到图库时,无需在应用中申请相册管理模块权限'ohos.permission.WRITE_IMAGEVIDEO',应用可以通过安全控件或授权弹窗的方式,将用户指定的媒体资源保存到图库中。Core File Kit(文件基础服务)为开发者提供统一的文件访问和管理能力,涵盖应用文件和用户文件,帮助用户高效地查找、管理、备份各类文件,满足多样化的文件操作需求。注意:使用基础文件操作接口时,耗时较长的操作,例如:read、write等,建议使用异步接口,避免应用崩溃。

2025-06-14 12:11:22 798

原创 7. TypeScript接口

TypeScript接口(Interfaces)是定义对象结构的强大工具,用于确保代码的一致性和可维护性。接口通过强制对象遵循特定属性结构和方法签名来实现类型检查,编译时会被移除。与type相比,接口更专注于对象形状描述,支持多重声明合并,适合类实现。最佳实践包括:定义复杂对象结构、使用可选属性、接口继承和函数签名定义。类可通过implements关键字实现单个或多个接口。高级应用包括创建带条件类型的接口(使用extends、映射类型和联合类型)以及混合类型(结合对象、函数等特性)。这些特性使TypeScr

2025-06-13 20:19:16 1627 1

原创 使用关系型数据库实现目标管理

本文介绍了一个基于关系型数据库的运动计划管理应用实现案例。案例中使用了SQLite关系型数据库,构建了运动表和计划表两张数据表,通过封装的RDBStoreUtil工具类实现了增删改查等基本操作。文章详细展示了数据库创建、表结构设计、SQL语句封装、数据操作接口实现等关键代码,并说明了如何将数据库操作与ArkUI界面组件结合,实现计划列表展示、条件筛选、新增编辑等功能。同时,文章还介绍了关系型数据库的基本概念、运作机制、开发约束以及常用接口使用方法,包括数据库版本管理、数据备份恢复等高级特性。该案例为开发者提

2025-06-13 11:17:00 1166

原创 使用用户首选项实现应用内字体大小调节

本文介绍了基于HarmonyOS ArkUI框架实现的"我的"页面字体大小调节功能。通过Slider滑动组件获取用户设置值,使用Preferences持久化存储字体偏移量,AppStorageV2实现全局状态管理。主要技术点包括:1)Slider组件实时调节字体大小;2)Preferences持久化存储用户设置;3)AppStorageV2同步全局UI状态;4)CustomDialog自定义弹窗交互。该方案适用于用户个性化设置场景,具有轻量级、实时响应等特性,但需注意Preference

2025-06-12 18:10:47 921

原创 用100道题拿下你的算法面试(数组篇-02):买卖股票的最佳时机

本文介绍了股票买卖问题的两种解法:朴素解法和优化解法。给定一个股票价格数组,要求在最多一次交易(买入后卖出)中获取最大利润。朴素解法使用双重循环遍历所有买卖组合,时间复杂度为O(n²)。优化解法通过维护最低买入价和最大利润变量,在单次遍历中解决问题,时间复杂度降至O(n)。两种方法的空间复杂度均为O(1)。文中提供了C++、C、Java、Python、C#和JavaScript的代码实现,并以示例数组{7,10,1,3,6,9,2}说明两种解法均能正确输出最大利润8。

2025-06-12 07:28:24 306

从零开始配置 VSCode 的 C/C++ 开发环境(含常见问题与解决方案)

本资源包详细介绍了如何从零配置 VSCode 的 C/C++ 开发环境,包含 GCC 编译器安装、VSCode 插件配置、tasks.json 与 launch.json 写法,以及头文件无法识别、终端中文乱码等常见问题与解决方法,并附带图文操作文档和可直接使用的配置模板文件,适合 Windows 初学者快速上手。 zip包内容包括: - 图文教程、示例代码与配置文件 - 常见问题说明(中文乱码、头文件不识别) - 安装包下载链接

2025-06-18

HarmonyOS应用开发案例实战:添加水印案例源码

HarmonyOS应用开发案例实战:添加水印案例源码

2025-06-17

实用高校毕业论文答辩PPT模板50套

毕业论文答辩PPT模板,各种风格、各种色彩、各种专业,含开题和毕业答辩,含本科和研究生。总有一套适合你参考。

2025-05-30

Expo Go-2.33.20-APKPure.xapk

Expo Go 安卓手机安装包。

2025-05-20

com.wuliang.xapkinstaller.apk

专用的 XAPK Installer,用于在安卓上安装xapk应用程序。

2025-05-20

HarmonyOS《制作我的计算器》案例

HarmonyOS应用开发实战指南——《制作我的计算器》案例代码。

2025-05-19

空空如也

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

TA关注的人

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