自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录第59 60 61天 | 最短路算法:dijkstra和Bellman_ford 以及 Floyd算法和A*算法 汇总

本文摘要:本文系统介绍了图论中最短路径算法,包括Dijkstra算法(朴素版和堆优化版)、Bellman-Ford算法(含SPFA优化)、Floyd算法和A算法。Dijkstra适用于正权图,Bellman-Ford可处理负权边并检测负环,Floyd解决多源最短路问题,A算法通过启发函数提高搜索效率。文章详细分析了各算法的核心思想、时间复杂度和适用场景,并提供了选择指南:正权图优先选择Dijkstra堆优化版,负权图使用Bellman-Ford,多源小图选择Floyd,棋盘寻路适用A*算法。每种算法均附有代

2025-11-05 16:13:48 1005

原创 代码随想录第55 57 58天 | 并查集应用 + 最小生成树算法 + 拓扑排序

本文总结了并查集及其在图论中的应用。首先介绍并查集基础,包括查找和合并操作。然后讨论两个典型问题:1) 冗余连接问题,通过并查集检测环并删除最后出现的冗余边;2) 最小生成树算法,包括Prim算法(基于节点扩展)和Kruskal算法(基于边排序和并查集)。最后讲解拓扑排序的BFS实现,通过删除入度为0的节点实现线性排序。三种算法都利用并查集高效处理图论问题,适用于环检测、连通性判断和节点排序等场景。

2025-11-04 16:26:53 667

原创 代码随想录第54天 | 并查集 基础介绍

并查集是一种处理连通性问题的数据结构,主要实现三个功能:1)判断元素是否同属一个集合;2)合并两个元素所在集合;3)查找元素的根节点。其核心是通过一维数组存储元素间的连接关系,使用路径压缩优化查找效率。典型应用包括判断图中节点是否连通,通过初始化、连接操作和查找操作即可实现路径存在性检测。代码实现包含初始化、寻根(带路径压缩)、合并集合和判断连通性四个核心函数。

2025-10-31 08:55:29 354

原创 代码随想录第53天 | 图论二三题

摘要:本文讨论了三个算法问题:1)字符串接龙转化为图最短路径问题,通过BFS搜索实现;2)有向图完全可达性判断,采用DFS/BFS遍历;3)岛屿周长计算,直接遍历网格统计相邻陆地。关键点包括:使用哈希表存储中间字符串,邻接表存储图结构,以及通过方向数组简化周长计算。各问题都提供了具体的代码实现方案。

2025-10-30 09:38:24 481

原创 代码随想录第51 52天 | 图论-岛屿问题汇总

本文介绍了岛屿问题的多种解法,主要包含DFS和BFS两种搜索方法的应用。内容涵盖岛屿数量统计、最大面积计算、孤岛处理、水流问题分析以及岛屿周长计算等典型问题。对于每种问题,都详细说明了DFS和BFS的实现思路和代码模板,并针对特定问题如孤岛处理和水流分析给出了优化策略。文章通过大量代码示例展示了如何利用搜索算法解决网格类问题,强调了标记已访问节点的重要性,并比较了不同算法的优缺点,为处理类似矩阵搜索问题提供了全面的解决方案参考。

2025-10-30 08:37:25 1220

原创 代码随想录第50天 | 图论 基础介绍(新篇章

本文介绍了图论的基础知识,包括图的分类、存储方式和遍历方法。主要内容: 图的基本概念:分为有向图/无向图、加权图;介绍了度、入度、出度等性质;解释了连通图和强连通图的定义。 图的存储方式: 邻接矩阵:适合稠密图,查找边方便但空间利用率低 邻接表:适合稀疏图,空间利用率高但查找边较慢 图的遍历方法: 深度优先搜索(DFS):采用递归回溯方式,适合路径搜索问题 广度优先搜索(BFS):使用队列实现,适合最短路径问题 通过具体例题展示了DFS和BFS的实现代码,包括邻接矩阵和邻接表两种存储方式下的DFS实现。 文

2025-10-27 09:34:29 1010

原创 代码随想录第47 48天 | 单调栈 问题汇总(完)

这篇文章介绍了单调栈在解决数组元素右侧/左侧第一个更大/更小元素问题中的应用。首先讲解了暴力解法的时间复杂度问题,引出单调栈的优化思路。然后详细分析了单调栈的实现原理、适用场景及操作规则,包括栈中存储内容、单调顺序选择等。接着通过LeetCode题目739、496、503展示了单调栈的具体应用,包括处理循环数组的技巧。最后深入讲解了接雨水和柱状图最大矩形两个经典问题,比较了双指针和单调栈两种解法,重点分析了单调栈在处理这类问题时的思路和实现细节。文章强调单调栈在空间换时间优化中的重要作用。

2025-10-24 09:15:35 794

原创 代码随想录第46天 | 回文串—动态规划 真 终章!

本文介绍了动态规划中回文串问题的两种解法。647题求回文字串数量,使用布尔型dp[i][j]表示子串是否为回文,通过从下往上、从左往右的遍历顺序进行状态转移。516题求最长回文子序列长度,区别在于子序列可以不连续,dp[i][j]表示最长长度,当s[i]等于s[j]时状态转移为dp[i+1][j-1]+2,否则取左右子序列最大值。两题都采用从下往上的遍历方式,但516题需要注意j从i+1开始遍历以避免越界。这些解法展示了动态规划处理回文问题的典型思路。

2025-10-23 08:56:51 289

原创 代码随想录第43 44 45天 | 子序列×编辑距离,动态规划终章!

本文总结了动态规划在字符串和数组问题中的应用,包括最长递增子序列、最长重复子数组、最长公共子序列、最大子序和、子序列匹配、不同子序列计数、字符串删除操作和编辑距离等经典问题。针对每个问题,文章详细分析了动态规划的定义、状态转移方程、初始条件和遍历顺序,并给出了相应的代码实现。其中重点讨论了如何通过定义合适的dp数组和状态转移方程来解决问题,以及如何处理边界条件和初始化问题。这些问题的解法都遵循动态规划的基本思路,通过分解子问题、保存中间结果来避免重复计算,从而提高效率。

2025-10-22 10:07:46 735

原创 代码随想录第40 41天 | 动态规划——买卖股票汇总

本文总结了股票买卖问题的6种变体及其解法,主要采用贪心算法和动态规划两种方法。对于基础版本(121题),通过记录最低买入价和最大利润求解;允许多次交易时(122题),采用累加利润策略;限制交易次数时(123、188题),通过状态机模型跟踪各次交易状态;含冷冻期问题(309题)需区分三种状态;含手续费问题(714题)则在卖出时扣除费用。动态规划解法通常定义二维数组dp[i][j]表示第i天的特定状态,通过状态转移方程求解最优值。

2025-10-19 10:53:23 1084

原创 代码随想录第38 39天 | 背包问题完结 及 打家劫舍系列题

本文总结了动态规划中的背包问题及打家劫舍系列问题的解法。对于背包问题,322题展示零钱兑换的最小硬币数解法,采用完全背包思路;279题解决完全平方数问题,类似上题;139题处理字符串拆分,强调排列顺序。多重背包问题通过二进制拆分优化。打家劫舍系列(198、213、337题)则分别处理一维、环形排列和二叉树结构的最大收益问题,核心在于状态转移时考虑当前元素选或不选的最优解。所有解法均详细说明了dp数组定义、状态转移方程和遍历顺序。

2025-10-19 08:56:11 793

原创 代码随想录第36天第37天 | 01背包应用 及 完全背包⭐

这篇文章主要介绍了几个动态规划(DP)问题及其解法,重点围绕背包问题的变种展开。首先讨论了1049题"最后一块石头的重量II",将其转化为近似01背包问题,通过将石头分成两堆使重量差最小化。接着分析了494题"目标和",展示了如何将问题转化为背包组合数问题,并推导了递推公式。对于474题"一和零",文章介绍了二维背包问题的解法。随后讲解了完全背包的理论基础,与01背包的区别,以及如何通过状态转移方程解决。最后通过518题"零钱兑换II&q

2025-10-15 16:30:20 713

原创 代码随想录第34天 | ⭐背包问题

本文总结了背包问题的四种类型:01背包(物品唯一)、完全背包(物品无限)、多重背包(物品数量不同)和分组背包(按组选择)。重点分析了01背包问题的二维和一维动态规划解法,通过示例代码展示了如何定义状态、推导递推公式、初始化和遍历顺序。特别强调了一维数组优化中逆序遍历的关键作用,以防止数据覆盖。最后以416题为例,演示了如何将实际问题转化为01背包问题求解。这些方法为解决各类背包问题提供了系统框架。

2025-10-12 10:34:32 1072

原创 代码随想录第33天 | 动态规划(2)

本文介绍了三道动态规划问题的解法:1. 不同路径问题(62题):使用二维DP数组,dp[i][j]表示到达(i,j)的路径数,递推公式为dp[i][j]=dp[i-1][j]+dp[i][j-1],初始化边界为1。2. 带障碍的不同路径问题(63题):在62题基础上处理障碍物,当遇到障碍时dp[i][j]=0,否则保持递推关系,需单独初始化边界。3. 整数拆分问题:用一维DP数组dp[i]表示i拆分的最大乘积,递推公式为dp[i]=max(dp[i], max((i-x)x, xdp[i-x])),其中x遍

2025-10-10 18:01:38 200

原创 代码随想录第32天 | 动态规划dp 入门

摘要:本文系统讲解了动态规划的理论基础和应用方法,通过斐波那契数、爬楼梯、最小花费爬楼梯三个经典例题,详细演示了动态规划五步法:1)定义dp数组含义;2)确定递推公式;3)初始化dp数组;4)确定遍历顺序;5)举例验证。每个例题都给出了完整的代码实现,展示了如何将理论转化为实践。文章强调掌握这五个步骤对于解决各类动态规划问题的重要性,是学习动态规划的必备基础。

2025-10-09 10:39:40 308

原创 代码随想录第30天 第31天 | 贪心(下)

文章摘要:本文讨论了多个贪心算法相关的题目解法,包括根据身高重建队列、分发糖果、引爆气球、无重叠区间、划分字母区间、合并区间和单调递增数字等。重点分析了处理双重维度问题时先处理一边的策略,以及如何利用排序和区间重叠特性优化解法。对于区间类问题,强调了按特定顺序排序的重要性,并提供了多种实现方式(如vector和链表)。在数字处理问题上,展示了如何通过调整数字位来满足递增条件。

2025-10-08 17:21:50 901

原创 代码随想录第27天 第28天 第29 天 | 贪心(上)

文章摘要:本文总结了贪心算法在多个LeetCode题目中的应用,通过局部最优解逐步达到全局最优。具体包括:455题饼干分发(大饼干优先满足大胃口)、376题摆动序列(寻找转折点)、53题最大子序和(负数清零)、122题股票买卖(低买高卖)、55/45题跳跃游戏(覆盖范围)、1005题K次取反(排序取反)、134题加油站(剩余油量累计)、135题糖果分发(双向遍历)和860题柠檬水找零(零钱策略)。每个问题都通过关键变量和条件判断实现贪心策略,并给出相应代码实现。

2025-10-08 11:55:04 957

原创 代码随想录第25天 | 回溯(完结篇) 含N皇后

本文介绍了三种回溯算法问题:全排列、含重复元素的全排列和N皇后问题。全排列问题通过used数组标记已使用元素避免重复;对于含重复元素的全排列,需先排序并使用额外条件剪枝;N皇后问题则通过逐行放置皇后并检查列、对角线是否冲突来解决。三种问题都采用回溯框架,通过递归和状态重置实现穷举搜索,其中N皇后还需设计有效性验证函数。代码示例展示了如何实现这些算法。

2025-10-06 20:01:41 315

原创 代码随想录第23天第24天 | 回溯 (二)

本文介绍了多个回溯算法相关的组合与子集问题。39题组合总和允许元素重复使用,通过递归和剪枝优化;40题组合总和II在数组有重复元素时,通过排序和used数组去重;131题分割回文串通过判断子串是否回文进行分割;93题复原IP地址通过验证合法数字段并插入点号;78题子集收集所有节点结果;90题子集II在含重复元素时结合了40题的去重方法;491题递增子序列则使用unordered_set实现同层去重。各题均采用回溯框架,通过递归遍历所有可能解,并运用不同策略处理重复问题。

2025-09-28 18:22:25 360

原创 代码随想录第22天 | 回溯

摘要:回溯法是一种穷举搜索算法,通过剪枝优化效率。它适用于组合、切割、子集、排列和棋盘等问题,可抽象为树形结构。关键要素包括:1)返回值和参数;2)终止条件;3)遍历过程。经典应用如77.组合问题,通过startIndex控制遍历起点,利用递归实现深度搜索。216.组合总和III增加了和值判断,17.电话号码字母组合则通过数字映射处理。回溯框架统一,包含处理节点、递归和撤销操作三个步骤,同时可通过条件判断进行剪枝优化。

2025-09-24 17:38:24 610

原创 代码随想录第20天第21天|二叉搜索树(2)

思路是寻找节点其左右子树是否有p和q这两个节点,若有则往上返回,若为空则说明没有,若左右子树两边都有,则就是二叉树的最近公共祖先。本题比想象中的简单,大家可以先自己想一想应该怎么做,然后看视频讲解,就发现 本题为什么比较简单了。本题也不难,在 求二叉搜索树的最小绝对差 和 众数 那两道题目 都讲过了 双指针法,思路是一样的。相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性。相对于 插入操作,本题就有难度了,涉及到改树的结构。,比 添加增加和删除节点难的多,建议先看视频理解。

2025-09-23 16:23:35 212

原创 Java异常处理:从崩溃到优雅掌控的终极指南

Java异常分为错误(Error)、运行时异常(RuntimeException)和检查型异常(Checked Exception)。Error是严重系统错误,程序无法处理;RuntimeException可处理可不处理,如空指针、数组越界等;检查型异常必须处理,如IO异常。异常处理方式包括try-catch捕获、throws声明和throw主动抛出。可通过继承Exception类创建自定义异常。throw会中断当前方法执行,throws用于警告调用者可能抛出的异常。合理使用异常处理机制能提高程序健壮性,如

2025-09-23 08:18:05 1001

原创 代码随想录第17天第18天|二叉搜索树

本文总结了二叉树相关算法题的解题思路和代码实现。主要包括:1.最大二叉树的构建(前序遍历递归实现);2.合并二叉树(递归合并节点值);3.二叉搜索树的搜索(利用有序特性递归或迭代);4.验证二叉搜索树(中序遍历检查有序性);5.二叉搜索树的最小绝对差(中序遍历比较相邻节点);6.二叉搜索树中的众数(中序遍历统计频率)。核心思想是充分利用二叉树遍历顺序(前序/中序)和二叉搜索树的有序特性,通过递归或迭代方式解决问题,重点在于正确处理边界条件和递归终止条件。

2025-09-22 08:25:14 758

原创 代码随想录第16天|利用前、中、后序遍历序列构造二叉树

文章摘要:本文介绍了二叉树相关算法题的解法。1. 找树左下角的值:提供了层序遍历(迭代)和前序遍历(递归)两种方法,重点在于记录每层最左节点。2. 路径总和:使用递归前序遍历,注意需要单独判断叶子节点条件。3. 从中序与后序遍历序列构造二叉树:详细解析了构建步骤,包括确定根节点、划分左右子树、递归构建等关键点。4. 前序与中序序列构造二叉树:类似后序解法,但根节点是前序第一个元素。所有解法都包含完整代码实现和关键思路说明。

2025-09-18 16:34:29 635

原创 代码随想录第15天| 二叉树的应用

【二叉树算法题解】本文包含四个二叉树相关算法题解:1. 平衡二叉树判断(AVL):通过递归计算左右子树高度差,绝对值>1则不平衡。2. 二叉树所有路径:使用回溯法记录根到叶子的路径,注意处理数字转字符串和路径连接符。3. 左叶子之和:递归遍历时判断左孩子是否为叶子节点,累计符合条件的节点值。4. 完全二叉树节点计数:提供递归和迭代两种解法,递归采用后序遍历,迭代使用栈模拟遍历过程。所有解法均基于二叉树节点定义,包含值、左右子节点指针,并处理了空节点情况。

2025-09-17 10:33:43 208

原创 代码随想录第14天| 翻转、对称与深度

这篇摘要总结了二叉树相关算法题的递归解法。重点包括:1)翻转二叉树需交换指针而非数值,使用前序遍历递归实现;2)对称二叉树通过比较左右子树是否镜像对称来判断;3)二叉树深度/高度的计算区别,最大深度采用后序遍历递归求根节点高度,最小深度需特殊处理单边为空的情况。所有解法均基于递归思想,并提供了对应的C++代码实现框架。

2025-09-16 17:28:19 361

原创 代码随想录第13天| 二叉树 多种遍历方法

本文系统介绍了二叉树的理论基础与遍历方法。主要内容包括:1)二叉树种类(满二叉树、完全二叉树、二叉搜索树、平衡二叉搜索树);2)存储方式(链式存储和数组存储);3)遍历方式(递归和迭代实现的前序、中序、后序遍历,以及层序遍历)。重点讲解了递归遍历的三要素(参数/返回值、终止条件、单层逻辑)和迭代遍历的栈实现方法,并提供了各类遍历的代码示例。最后介绍了统一迭代法和层序遍历的队列实现。文章内容全面,涵盖了二叉树的核心知识点和常见实现方法。

2025-09-16 15:34:14 754

原创 代码随想录第10天+第11天| 栈与队列汇总

本文系统介绍了栈和队列的基本概念、STL实现版本及操作接口。主要内容包括:栈(先进后出)和队列(先进先出)的基本特性与核心操作;SGISTL、HPSTL等不同STL版本的实现特点;栈和队列的底层容器选择(deque、vector、list)及性能分析;栈与队列的常见操作(push/pop/top等)和安全访问方法;通过典型例题(如用栈实现队列、有效的括号等)演示实际应用;最后简要提及滑动窗口最大值和前K高频元素等进阶问题。全文约1500字,涵盖数据结构基础到典型应用场景。

2025-09-14 22:48:44 654

原创 代码随想录第9天| 内含KMP算法详细总结

本文总结了字符串操作的常见算法:1. 翻转字符串单词:通过双指针从后往前遍历,或先整体反转再局部反转单词。2. 右旋转字符串:使用双指针法或预填充空间的方法处理。3. KMP算法:核心在于构建next数组(最长公共前后缀表),用于高效字符串匹配。4. 重复子串判断:通过字符串拼接后查找原字符串。重点强调了双指针、反转操作、KMP算法的next数组构建等技巧,并提供了对应LeetCode题目的实现代码。

2025-09-11 21:25:36 1570

原创 代码随想录第八天 | ● 344.反转字符串● 541. 反转字符串II● 卡码网:54.替换数字

本文总结了字符串处理的三道算法题:1. 反转字符串采用双指针法,通过交换首尾字符实现原地反转;2. 反转字符串II每2k个字符为一组,反转前k个字符,利用reverse库函数实现;3. 替换数字问题使用双指针从后往前遍历,将数字替换为"number"并调整字符串空间。三题均涉及双指针技巧,其中后两题分别展示了库函数的便捷使用和空间优化处理的方法。

2025-09-11 08:45:35 215

原创 代码随想录第七天|● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 18.四数之和

本文总结了哈希表在解决多数组求和与计数问题中的应用。主要内容包括:1. 四数相加II通过分组哈希将复杂度从O(n⁴)降至O(n²);2. 赎金信使用数组哈希表统计字母频率;3. 三数之和采用排序+双指针+去重策略;4. 四数之和扩展三数解法,注意溢出处理。核心思想是利用哈希表空间换时间,针对不同问题选择数组、set或map实现,结合排序和双指针优化性能,重点掌握分组处理、去重技巧和提前终止条件等优化策略。

2025-09-09 19:24:47 266

原创 代码随想录第六天 | 哈希表理论基础 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和

哈希表理论基础:哈希表通过哈希函数将元素映射到表中位置,用于快速查找。关键点包括:1)数组索引即关键码;2)哈希碰撞的两种解决方法(链式和线性探查);3)实现哈希表的三种数据结构(数组、集合set、映射map)。文章通过四道力扣题目(242字母异位词、349数组交集、202快乐数、1两数之和)展示了哈希表的具体应用,包括字符统计、元素查重、循环检测和值-索引存储等场景,重点比较了不同数据结构的适用性,如unordered_set的高效性和map的键值存储优势。

2025-09-08 20:53:27 345

原创 代码随想录算法训练营第四天|24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II

本文总结了链表常见问题的解法:1. 两两交换节点采用值交换法,通过双指针遍历实现;2. 删除倒数第N个节点使用虚拟头节点和双指针间距法;3. 链表相交问题通过长度差调整指针位置;4. 环形链表检测使用快慢指针,并推导了环入口的数学关系。文中强调虚拟头节点的便利性,并指出链表题的基础在于掌握基本操作,建议通过"设计链表"题目加强练习。每个问题都配有详细的代码实现和思路分析,包括指针移动、边界条件处理等关键细节。

2025-09-06 17:35:35 485

原创 代码随想录算法训练营第三天| 链表理论基础 203.移除链表元素 707.设计链表 206.反转链表

本文介绍了链表的基础知识和相关算法题解。链表是一种非连续存储结构,包含单链表、双链表和循环链表等类型。文章重点讲解了三个经典算法题:1)移除链表元素时使用虚拟头节点统一处理逻辑;2)设计链表需实现查询、插入、删除等基本操作;3)反转链表可采用双指针或递归方法。通过代码示例详细展示了每种算法的实现思路和关键技巧,为链表相关编程问题提供了系统性的解决方案。

2025-09-05 17:15:10 525

原创 代码随想录算法训练营第二天 |209.长度最小的子数组 59.螺旋矩阵II 区间和 开发商购买土地

本文总结了三个算法问题的解题思路:1. 209题使用滑动窗口优化暴力解法,通过单循环控制窗口结束位置,动态调整起始位置;2. 59题螺旋矩阵采用分层模拟法,控制循环次数和边界条件处理奇偶情况;3. 区间和与土地分配问题运用前缀和技巧,通过预处理快速计算子区域和。解题关键在于:滑动窗口需明确移动条件,模拟问题要分析循环不变量,前缀和需注意边界处理。这些算法在降低时间复杂度方面效果显著,总练习时长2小时20分钟。

2025-09-04 20:36:04 386

原创 代码随想录算法训练营第一天 | 704.二分查找 27. 移除元素 977.有序数组的平方

本文介绍了数组基础知识和三个算法题解。首先讲解了数组的连续存储特性及不同语言的实现差异(C++连续存储,Java非连续)。接着详细解析了三道LeetCode题目:704二分查找(区分左闭右开和左闭右闭两种区间规则)、27移除元素(暴力解法和双指针法)、977有序数组平方(双指针解法)。重点强调了算法实现中的关键细节(如区间边界条件、指针移动条件等),并分享了作者解题过程中遇到的误区及解决方法。通过1小时5分钟的学习,作者掌握了二分查找和双指针技巧的应用。

2025-09-03 21:29:21 544

原创 【洛谷题单】暴力枚举(上)

这题的核心点在于如何求出矩形数量,通常情况下可以多多列举几个例子,去分析,然后推出整体的公式。这是一道简单的dfs题,按照正常递归思路思考回溯即可这题主要是分析,分析出来如何做的写代码就简单了代码中有个重要的点——》就是在dfs中如何防止元素重复,也就是这个元素用过了,如何防止下次不再用。我们把这部分的代码拿出来分析首先定义了i<n;dfs(x+1);res-=a[i];//把dfs函数参数设置为三个。

2025-03-27 23:04:50 1447

原创 【算法思想】高精度

根据题目和代码,我们知晓了如何利用简单方法来计算高精度的题目,还需要注意的是创建数组的大小时,往往设置为设置精度的次方数例如如果说明数范围为10的10086次方,那么如果是加减法那么所有的数组大小都为【10090】//多一点保险如果是乘法,那么需要让c数组,也就是存储结果的数组=2倍的【10090】

2025-03-17 20:29:25 760

原创 【算法思想】前缀和

前缀和,这三个字,顾名思义表示是一个和,并且是某段序列的前缀的和。我们回到上一个题,如果我们提前知道第1个数到l-1个数的和,还有第1个数到第r个数的和,那么它们相减是不是可以直接得出结果,这个时间复杂度就是O(N)了;那么如何得出从第一个数到某个数的和呢?(也就是前缀和的具体做法先定义一个数组s[N],s[i]表示从第一个数字到第i个数字的和。我们输入一段长度为n的序列,如果是一个个输入的,那么每输入一个就加到s[i]上,并且s[i]还需要加上s[i-1]s[0]=0;i<=n;i++)

2025-03-15 16:45:23 873

原创 【算法题】乒乓球的11分制和21分制

根据上面题目,我们先来分析它需要让我们输入的东西,太会输入不定行数的几段字符串去判断在这一整段字符串里,可以得出怎样的比赛结果。显而易见,我们需要先解决输入问题,如何把输入很多行的代码归并到一起去使用呢?当然是要用到while(cin>>n)了,一般情况下,如果需要多次输入,就需要来用这一行代码,那么如何把所有输入的代码给放到一起呢?

2025-03-13 14:11:49 374

空空如也

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

TA关注的人

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