- Rust知识篇05-所有权和借用 Rust知识篇05-所有权和借用
- 2025-07-31:最多 K 个元素的子序列的最值之和。用go语言,给定一个整数数组 nums 和一个正整数 k,求所有非空子序列中,长度不超过 k 的那些子序列的“最大元素和最小元素之和”的累加和。需要注意的是,子序列是从原数组中删去部分元素(顺序不变)得到的序列。由于结果可能非常庞大,请将最终答案对 1000000007 取模后返回。1 <= nums.length <= 100000... 2025-07-31:最多 K 个元素的子序列的最值之和。用go语言,给定一个整数数组 nums 和一个正整数 k,求所有非空子序列中,长度不超过 k 的那些子序列的“最大元素和最小元素之和”的累加和。需要注意的是,子序列是从原数组中删去部分元素(顺序不变)得到的序列。由于结果可能非常庞大,请将最终答案对 1000000007 取模后返回。1 <= nums.length <= 100000...
- 递归函数 递归函数
- 递归的算法题目 递归的算法题目
- 2025-07-30:变长子数组求和。用go语言,给定一个长度为 n 的整数数组 nums。对于数组中的每个位置 i(范围是 0 到 n-1),我们定义一个子数组,区间为 nums[start … i],其中 start 等于 max(0, i - nums[i])。任务是计算并返回对于每个位置 i,所对应的子数组内所有元素的累加和。简而言之,就是对于每个元素,根据它的值确定子数组的起始位置... 2025-07-30:变长子数组求和。用go语言,给定一个长度为 n 的整数数组 nums。对于数组中的每个位置 i(范围是 0 到 n-1),我们定义一个子数组,区间为 nums[start … i],其中 start 等于 max(0, i - nums[i])。任务是计算并返回对于每个位置 i,所对应的子数组内所有元素的累加和。简而言之,就是对于每个元素,根据它的值确定子数组的起始位置...
- 2025-07-29:所有安放棋子方案的曼哈顿距离。用go语言,给定三个整数 m、n 和 k,表示一个 m 行 n 列的棋盘,以及需要放置的 k 个相同棋子。任务是计算出所有可能的合法放置方案中,每个方案中所有棋子两两之间曼哈顿距离的总和,再把这些结果加起来。所谓合法方案,指的是将这 k 个棋子都放入棋盘中,且每个格子最多放一颗棋子。曼哈顿距离定义为两个格子坐标 (x1, y1) 和 (x2... 2025-07-29:所有安放棋子方案的曼哈顿距离。用go语言,给定三个整数 m、n 和 k,表示一个 m 行 n 列的棋盘,以及需要放置的 k 个相同棋子。任务是计算出所有可能的合法放置方案中,每个方案中所有棋子两两之间曼哈顿距离的总和,再把这些结果加起来。所谓合法方案,指的是将这 k 个棋子都放入棋盘中,且每个格子最多放一颗棋子。曼哈顿距离定义为两个格子坐标 (x1, y1) 和 (x2...
- 2025-07-27:将数组变相同的最小代价。用go语言,你有两个长度均为 n 的整型数组 arr 和 brr,还有一个整数 k。你可以对 arr 进行以下两种操作,次数不限:将 arr 分成若干连续的子数组,然后按照任意顺序重新排列,这个操作的代价是 k。选择 arr 中的任意一个元素,并将该元素增加或减少一个正整数 x,代价为 x。请你计算并返回将 arr 变成 brr 所需的最小总代价... 2025-07-27:将数组变相同的最小代价。用go语言,你有两个长度均为 n 的整型数组 arr 和 brr,还有一个整数 k。你可以对 arr 进行以下两种操作,次数不限:将 arr 分成若干连续的子数组,然后按照任意顺序重新排列,这个操作的代价是 k。选择 arr 中的任意一个元素,并将该元素增加或减少一个正整数 x,代价为 x。请你计算并返回将 arr 变成 brr 所需的最小总代价...
- B+树索引 核心特性多路平衡查找树:每个节点可包含多个子节点(由阶数决定),通过分层结构降低树高,减少磁盘I/O次数。节点分工明确内部节点:仅存储键值用于导航,不直接存储数据。叶子节点:存储所有实际数据,并通过双向链表连接,支持高效的范围查询和顺序访问。平衡性与分裂机制:通过节点分裂或合并维持平衡,保证所有叶子节点位于同一层。高扇出性:单个节点可存储大量键值,显著降低树的高度。 优势与适用... B+树索引 核心特性多路平衡查找树:每个节点可包含多个子节点(由阶数决定),通过分层结构降低树高,减少磁盘I/O次数。节点分工明确内部节点:仅存储键值用于导航,不直接存储数据。叶子节点:存储所有实际数据,并通过双向链表连接,支持高效的范围查询和顺序访问。平衡性与分裂机制:通过节点分裂或合并维持平衡,保证所有叶子节点位于同一层。高扇出性:单个节点可存储大量键值,显著降低树的高度。 优势与适用...
- 去年我们接手了一个数据分析系统,日增数据量500万条,总数据量已经突破10亿。最要命的是,运营部门的查询需求五花八门:“查询所有上海地区、年龄25-35岁、最近7天活跃的VIP用户”,这种查询每天要跑上千次。原系统用的是普通B+树索引,复杂查询经常要扫描上千万行数据,一个查询跑十几分钟是家常便饭。经过3个月的优化,我们用红黑树优化了内存索引结构,用位图索引处理低基数字段,查询性能提升了50... 去年我们接手了一个数据分析系统,日增数据量500万条,总数据量已经突破10亿。最要命的是,运营部门的查询需求五花八门:“查询所有上海地区、年龄25-35岁、最近7天活跃的VIP用户”,这种查询每天要跑上千次。原系统用的是普通B+树索引,复杂查询经常要扫描上千万行数据,一个查询跑十几分钟是家常便饭。经过3个月的优化,我们用红黑树优化了内存索引结构,用位图索引处理低基数字段,查询性能提升了50...
- 泛型编程和协变逆变是现代编程语言中两个非常重要的概念。它们为开发者提供了更强大的类型系统和更灵活的代码复用机制。本文将详细介绍这两种技术的核心思想、适用场景、典型问题及其实现示例。 1. 泛型编程(Generic Programming) 核心思想泛型编程是一种编写代码时使用类型参数的编程风格,允许开发者编写更加通用、可复用的代码,而不必在编写时指定具体类型。通过泛型编程,可以实现代码复用,... 泛型编程和协变逆变是现代编程语言中两个非常重要的概念。它们为开发者提供了更强大的类型系统和更灵活的代码复用机制。本文将详细介绍这两种技术的核心思想、适用场景、典型问题及其实现示例。 1. 泛型编程(Generic Programming) 核心思想泛型编程是一种编写代码时使用类型参数的编程风格,允许开发者编写更加通用、可复用的代码,而不必在编写时指定具体类型。通过泛型编程,可以实现代码复用,...
- 在算法设计中,动态规划和分治算法是两种非常重要且常用的策略。它们各自适用于不同类型的问题,通过合理运用,可以大幅提升算法的效率。本文将详细介绍这两种算法的核心思想、适用场景、典型问题及其实现示例。 1. 动态规划(Dynamic Programming) 核心思想动态规划是一种通过将问题分解为相互重叠的子问题,先解决子问题,再逐步构建出最终解的算法设计技术。它通常用于具有重叠子问题和最优子结... 在算法设计中,动态规划和分治算法是两种非常重要且常用的策略。它们各自适用于不同类型的问题,通过合理运用,可以大幅提升算法的效率。本文将详细介绍这两种算法的核心思想、适用场景、典型问题及其实现示例。 1. 动态规划(Dynamic Programming) 核心思想动态规划是一种通过将问题分解为相互重叠的子问题,先解决子问题,再逐步构建出最终解的算法设计技术。它通常用于具有重叠子问题和最优子结...
- 函数式编程(Functional Programming)是一种编程范式,强调计算作为数学函数的评估。近年来,随着编程语言的不断发展,函数式编程的概念和技术逐渐被广泛应用。本文将详细介绍函数式编程中的三个重要概念:匿名函数、尾递归优化和高阶函数,并探讨它们在实际编程中的应用。 匿名函数 定义匿名函数(Anonymous Function),也称为 lambda 表达式,是一种没有名称的函数。... 函数式编程(Functional Programming)是一种编程范式,强调计算作为数学函数的评估。近年来,随着编程语言的不断发展,函数式编程的概念和技术逐渐被广泛应用。本文将详细介绍函数式编程中的三个重要概念:匿名函数、尾递归优化和高阶函数,并探讨它们在实际编程中的应用。 匿名函数 定义匿名函数(Anonymous Function),也称为 lambda 表达式,是一种没有名称的函数。...
- 背景我们维护一套 Node.js + C++ hybrid 的脚本引擎,源码 12 W 行,交付给客户后常被丢上某第三方逆向平台。老板一句话:“既要让对手看不懂,也要让我们自己能改 bug。”于是我们把抽象语法树(AST)当成画布,用一套“可控混淆”流程上线。三个月内,逆向报告从 3 份降到 0 份,引擎体积反而从 38 MB 缩到 26 MB。复盘如下,数字来自 cloc + perf r... 背景我们维护一套 Node.js + C++ hybrid 的脚本引擎,源码 12 W 行,交付给客户后常被丢上某第三方逆向平台。老板一句话:“既要让对手看不懂,也要让我们自己能改 bug。”于是我们把抽象语法树(AST)当成画布,用一套“可控混淆”流程上线。三个月内,逆向报告从 3 份降到 0 份,引擎体积反而从 38 MB 缩到 26 MB。复盘如下,数字来自 cloc + perf r...
- 编程中,函数式编程语言因其简洁性和强大的表达能力而受到广泛欢迎。在这篇文章中,我们将深入探讨两种重要的概念——惰性求值(Lazy Evaluation)和闭包(Closure),并了解它们如何在实际编程中发挥作用。 惰性求值:按需计算的智慧 什么是惰性求值?惰性求值是一种求值策略,它只在真正需要结果的时候才进行计算。这种策略有助于提高程序的效率,特别是在处理无限序列或昂贵计算时。例如,在某些... 编程中,函数式编程语言因其简洁性和强大的表达能力而受到广泛欢迎。在这篇文章中,我们将深入探讨两种重要的概念——惰性求值(Lazy Evaluation)和闭包(Closure),并了解它们如何在实际编程中发挥作用。 惰性求值:按需计算的智慧 什么是惰性求值?惰性求值是一种求值策略,它只在真正需要结果的时候才进行计算。这种策略有助于提高程序的效率,特别是在处理无限序列或昂贵计算时。例如,在某些...
- 在计算机科学中,选择合适的算法策略对于解决复杂问题至关重要。本文将介绍四种经典的算法设计策略:动态规划、分治算法、贪心算法和回溯算法,并结合实际应用场景进行详细说明。 1. 动态规划(Dynamic Programming)动态规划是一种通过将问题分解为子问题来求解复杂问题的方法。它适用于具有重叠子问题和最优子结构性质的问题。动态规划的核心思想是存储子问题的解以避免重复计算,从而提高效率。 ... 在计算机科学中,选择合适的算法策略对于解决复杂问题至关重要。本文将介绍四种经典的算法设计策略:动态规划、分治算法、贪心算法和回溯算法,并结合实际应用场景进行详细说明。 1. 动态规划(Dynamic Programming)动态规划是一种通过将问题分解为子问题来求解复杂问题的方法。它适用于具有重叠子问题和最优子结构性质的问题。动态规划的核心思想是存储子问题的解以避免重复计算,从而提高效率。 ...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签