- 博客(25)
- 收藏
- 关注
原创 自学力扣:最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。解释:最长数字连续序列是 [1, 2, 3, 4]。输入:nums = [0,3,7,2,5,8,4,6,0,1]输入:nums = [100,4,200,1,3,2]输入:nums = [1,0,1,2]
2025-07-18 20:47:52
332
原创 自学记录:力扣hot100第三题
中等给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。1因为无重复字符的最长子串是"b",所以其长度为 1。3因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是的长度,"pwke"是一个子序列,不是子串。以 “无重复字符的最长子串” 为例,暴力解法需枚举所有子串(时间复杂度 O (n²)),并检查每个子串是否无重复(时间复杂度 O (n)),总时间复杂度为 O (n³)。
2025-06-20 02:35:30
957
原创 自学记录:力扣hot100第二题
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。
2025-06-20 00:09:48
174
原创 字符田字格绘制
5.1 字符田字格绘制。编写程序,用字符方式打印输出一个简单的田字格,输出发果如图所示。要求采用函数方式,以田字格宽度为参数,能够根据参数绘制任意六小的田字格。
2025-05-12 18:58:33
203
原创 蒙特卡罗方法手搓图形
蒙特卡罗方法是一种基于随机采样的统计技术,通过生成大量随机点并分析其统计特性来解决问题。在图形绘制中,我们可以利用这种随机性来创建有趣的视觉效果,例如分形图案、概率分布可视化或模拟自然现象。蒙特卡罗方法通过随机性和统计规律创造出丰富的图形效果,从数学证明到分形艺术,都展示了其强大的表现力。大量随机事件的统计结果会趋近于确定性规律。
2025-05-12 18:36:41
234
原创 if_name_==‘_main_‘:的含义,why?
为 Python 提供了一种灵活的机制,使得模块既能作为独立脚本运行,又能作为库被其他程序导入,从而实现代码的复用和模块化设计。
2025-05-12 18:06:49
326
原创 Python实验四:列表与字典应用
1.基础:生日悖论分析。如果一个房间有23人或以上,那么至少有两个人的生日相同的概率大于50%。编写程序,输出在不同随机样本数量下,23个人中至少两个人生日相同的概率。3.拓展:金庸、古龙等武侠小说写作风格分析。输出不少于3个金庸(古龙)作品的最常用10个词语,找到其中的相关性,总结其风格。2.进阶:统计《一句顶一万句》文本中前10高频词,生成词云。目的:熟练操作组合数据类型。
2025-04-26 16:20:10
145
原创 Python实验3:函数与代码复用
1.基础 :编写函数cal factorial(n)计算阶乘(循环实现)3.拓展:科赫曲线正向、反向绘制,加入绘制速度、绘制颜色等额外功能。2.进阶:用递归实现斐波那契数列(考虑添加缓存优化)。提示:递归函数需注意终止条件,避免栈溢出。目的:理解函数封装与递归思想。
2025-04-26 15:59:37
163
原创 Python实验2:turtle 库绘制进阶图形
知识点:turtle 库坐标控制、循环结构、函数封装(教材2.3-2.4)2. 设计函数绘制自定义正多边形(边数与颜色参数化)1. 绘制嵌套彩色五角星(大小逐层递减)3. 扩展:实现动态旋转花瓣图案。
2025-04-18 10:20:01
241
原创 Python实验1 温度转换与输入输出强化
知识点:input()/print()、分支语句、字符串处理(教材2.1-2.2)2. 扩展功能:输入错误处理(如非数字输入提示重新输入)1. 实现摄氏温度与华氏温度互转(保留两位小数)3. 扩展:支持开尔文温度的三向转换。
2025-04-18 09:27:18
158
原创 请列举你所了解的测试工具
它支持多种编程语言,如Java、Python、Ruby、C#等,能够模拟用户与浏览器的交互,执行自动化测试脚本,进行功能测试、回归测试和负载测试。它提供直观的测试脚本录制和编辑功能,能够模拟用户交互,执行复杂的测试场景,并生成详尽的测试报告。它提供了注解和断言方法来编写测试用例,支持测试前的准备、测试执行和测试后的清理工作,是确保代码质量的重要工具。:这是一个广泛使用的Java单元测试框架,它允许开发者编写可重复的测试,以验证代码的正确性。: 用于桌面、移动和 Web 应用的自动化测试。
2024-06-02 00:31:30
585
原创 如何理解信息隐藏和局部化?
信息隐藏(Information Hiding)和局部化(Localization)是软件工程和编程领域中的两个重要概念,它们各自具有特定的含义和应用场景。信息隐藏是指将秘密信息隐藏于可公开的媒体信息中,使人们凭直观的视觉和听觉难以察觉其存在的技术。这种技术的核心思想是将模块或对象的内部实现细节隐藏起来,仅对外暴露必要的接口或服务,主要目的是确保信息在传输或存储过程中的安全性,防止未经授权的访问或窃取。
2024-05-25 14:37:31
492
原创 什么是模块化?为什么要模块化?
在软件工程中,模块化是指将一个大型系统划分为多个相互独立且具有特定功能的模块(或称为组件、单元),每个模块负责完成系统中的一部分功能。:模块之间通过定义清晰的接口进行通信,降低了模块之间的依赖关系,减少了系统中各模块之间的耦合度,使得系统更加灵活和可扩展。:模块化设计有助于提取和封装通用功能,使得这些模块可以在系统中被重复利用,避免了重复编写相同功能的代码,提高了开发效率。:模块化的系统更容易进行单元测试,每个模块可以被独立测试,确保其功能的正确性,有助于减少整体系统的错误率。
2024-05-25 13:48:02
502
原创 什么是WBS?
WBS(Work Breakdown Structure)是工作分解结构的缩写,是一种将项目分解为可管理和控制的工作包的层次结构。WBS的核心是将整个项目逐级分解为更小的工作包,直到每个工作包可以被分配给团队成员进行实际工作。
2024-05-23 23:39:22
800
1
原创 什么是分而治之?
在软件开发中,"分而治之"(Divide and Conquer)是一种常见的设计和算法策略,旨在解决复杂问题的方法。这种策略基本思想是将一个大问题分解成较小的子问题,然后分别解决这些子问题,最终将它们的解合并起来得到原始问题的解决方案。通过分而治之的策略,软件开发团队可以更好地管理复杂性,提高开发效率,并更容易地解决大规模和复杂性问题。:将原始问题分解成较小的子问题,通常是相同类型的问题或者可以通过相似的方法解决的问题。:对每个子问题递归地应用分而治之的策略,直到子问题足够简单可以直接解决。
2024-05-23 23:34:50
753
1
原创 为什么软件开发周期总是预估的2-3倍?
因此,软件开发周期被预估为实际所需时间的2-3倍的原因主要是由于任务复杂性低估、不可预见因素、人为因素和时间管理不当等多方面因素造成的。开发团队可能会出现沟通不畅、任务分配不合理、人员变动等问题,这些都会影响项目的进度和质量。未考虑不可预见的因素:软件开发过程中常常会遇到一些不可预见的因素,如技术难题、第三方依赖问题、环境配置等。这些不可预见因素会增加开发时间和成本。时间管理不当:有时开发团队会在项目管理和时间规划上存在不当,导致任务重叠、优先级不清晰、进度控制不力等问题,从而延长了软件开发周期。
2024-05-23 23:32:01
201
1
原创 如果你要开发一个中小学生学习数学的软件,你应该找谁去做用户调研?
在开发一个中小学生学习数学的软件时,进行用户调研是至关重要的,因为它能帮助我们深入了解目标用户的需求、期望和痛点。
2024-05-14 23:35:49
351
原创 理解结对编程
结对编程(Pair Programming)是一种软件开发实践,其中两名程序员共同工作在同一计算机上完成编程任务。在结对编程中,两名程序员通常会交替担任“驾驶员”和“观察员”角色。驾驶员负责实际编写代码,而观察员负责审查代码、提出建议、思考更高级别的设计问题以及注意错误。这种协作方式通常是持续的,团队成员可以轮流担任不同的角色。
2024-05-13 21:16:20
744
原创 什么是Devops?
DevOps(Development和Operations的组合词)是一种文化和实践方法,它强调软件开发(Dev)和信息技术运维(Ops)团队之间的紧密合作与沟通,以自动化化的工具链和可重复的过程,实现软件的快速、频繁、可靠地交付。DevOps的目标是缩短开发到部署的周期,提升软件质量和稳定性,同时增强团队的响应速度,以便更快地适应市场变化和用户需求。
2024-05-11 16:32:01
5529
1
原创 软件工程方法论对我们经软件开发有多大用处?谈谈你的看法
软件工程方法论是一套系统化的框架,指导软件开发从需求分析到最终部署的全过程。它融合了管理技巧、设计原则、开发模型和质量保障策略,旨在提升开发效率、保证软件质量、管控项目风险并促进团队协作。通过采用迭代、敏捷或其他结构化方法,软件工程方法论确保软件产品能够及时响应市场变化,满足用户需求,同时保持可维护性和可扩展性。简而言之,它是软件开发的科学与艺术结合,让复杂的开发活动变得可控、高效且可持续。
2024-05-10 20:42:41
1430
原创 软件工程是不是教会不怎么会写程序的人开发软件?
软件工程涉及软件开发的全过程,包括需求分析、设计、编码、测试、维护以及项目管理等环节,它强调的是软件开发的组织、计划、流程和标准,而不仅仅是编程技能。对于不擅长编程的人,软件工程的知识能够帮助他们理解软件开发的流程,参与到项目管理、需求分析、质量保证等非直接编码,强调编程技能的活动中。软件工程是一门提升软件开发效率和质量的学科,它适合所有参与软件开发过程的人,不仅仅限于不怎么会编写程序的新手,也服务于有经验的开发者与项目管理者,帮助他们更好地组织和管理软件开发工作。
2024-05-09 20:46:01
242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅