- 哈希表、堆、栈、链表和队列是计算机科学中常用的数据结构,它们各自具有独特的特性和适用场景。以下是它们的主要应用场景及特点: 1. 哈希表(Hash Table)核心特性:通过哈希函数将键映射到数组索引,实现平均 O(1) 时间复杂度的插入、删除和查找。允许键值对存储,键唯一。适用场景:快速查找:如字典、缓存(如Redis)、数据库索引。去重:统计词频、检测重复元素。键值存储:配置文件、用户会... 哈希表、堆、栈、链表和队列是计算机科学中常用的数据结构,它们各自具有独特的特性和适用场景。以下是它们的主要应用场景及特点: 1. 哈希表(Hash Table)核心特性:通过哈希函数将键映射到数组索引,实现平均 O(1) 时间复杂度的插入、删除和查找。允许键值对存储,键唯一。适用场景:快速查找:如字典、缓存(如Redis)、数据库索引。去重:统计词频、检测重复元素。键值存储:配置文件、用户会...
- 树的定义、存储和基本运算 定义树是一种非线性数据结构,由 n(n ≥ 0)个节点 组成的有限集合。当 n = 0 时称为空树;非空树中有一个根节点,其余节点分为 m(m ≥ 0)个互不相交的有限集合,每个子集本身又是一棵树,称为子树。树的核心条件包括:唯一根节点:有且仅有一个根节点。互斥子树:除根节点外,其他节点形成互不相交的子树集合。 存储方式双亲表示法(顺序存储)结构:用数组存储节点,... 树的定义、存储和基本运算 定义树是一种非线性数据结构,由 n(n ≥ 0)个节点 组成的有限集合。当 n = 0 时称为空树;非空树中有一个根节点,其余节点分为 m(m ≥ 0)个互不相交的有限集合,每个子集本身又是一棵树,称为子树。树的核心条件包括:唯一根节点:有且仅有一个根节点。互斥子树:除根节点外,其他节点形成互不相交的子树集合。 存储方式双亲表示法(顺序存储)结构:用数组存储节点,...
- 以下是数组、链表、队列和栈的详细定义、存储方式及基本运算的总结,涵盖核心概念与操作: 一、数组(Array) 1. 定义连续内存存储的线性数据结构,通过**索引(下标)**直接访问元素。特点:固定大小(静态数组)或动态扩容(动态数组,如C++的vector、Python的list)。 2. 存储方式顺序存储:元素在内存中连续排列,地址计算公式:地址 = 基地址 + 索引 × 元素大小(例如:... 以下是数组、链表、队列和栈的详细定义、存储方式及基本运算的总结,涵盖核心概念与操作: 一、数组(Array) 1. 定义连续内存存储的线性数据结构,通过**索引(下标)**直接访问元素。特点:固定大小(静态数组)或动态扩容(动态数组,如C++的vector、Python的list)。 2. 存储方式顺序存储:元素在内存中连续排列,地址计算公式:地址 = 基地址 + 索引 × 元素大小(例如:...
- 在 Python 中,要对包含中文字符串的列表按照拼音顺序进行排序,可以使用 pypinyin 库将中文转换为拼音,然后基于拼音进行排序。以下是具体实现方法: 方法一:使用 pypinyin 库首先安装 pypinyin 库:pip install pypinyin代码示例:from pypinyin import pinyin, Styledef sort_chinese_list(lst... 在 Python 中,要对包含中文字符串的列表按照拼音顺序进行排序,可以使用 pypinyin 库将中文转换为拼音,然后基于拼音进行排序。以下是具体实现方法: 方法一:使用 pypinyin 库首先安装 pypinyin 库:pip install pypinyin代码示例:from pypinyin import pinyin, Styledef sort_chinese_list(lst...
- 1 简介本文简介duck typing类型, 一个简洁、可直接运行的 Python3 示例,展示“鸭子类型”(duck typing) 如何让代码灵活 + 简洁;最后说明 Flask 与 Django 中有哪些典型地方使用了这一思想。 2 Python 鸭子类型示例无需关心对象的真实类型,这就是鸭子类型核心思想: “If it walks like a duck and quacks ... 1 简介本文简介duck typing类型, 一个简洁、可直接运行的 Python3 示例,展示“鸭子类型”(duck typing) 如何让代码灵活 + 简洁;最后说明 Flask 与 Django 中有哪些典型地方使用了这一思想。 2 Python 鸭子类型示例无需关心对象的真实类型,这就是鸭子类型核心思想: “If it walks like a duck and quacks ...
- 在 Python 中,要从一个字符串数组(列表)中删除另一个字符串数组中存在的相同元素,可以使用列表推导式(List Comprehension)或集合(Set)操作。以下是几种实现方法: 方法 1:列表推导式(保留顺序)list1 = ["apple", "banana", "cherry", "date"]list2 = ["banana", "date", "fig"]# 删除 lis... 在 Python 中,要从一个字符串数组(列表)中删除另一个字符串数组中存在的相同元素,可以使用列表推导式(List Comprehension)或集合(Set)操作。以下是几种实现方法: 方法 1:列表推导式(保留顺序)list1 = ["apple", "banana", "cherry", "date"]list2 = ["banana", "date", "fig"]# 删除 lis...
- 1 简介不同语言都有类似于go的接口类型,Java, Python 3, 和 Rust 都有类似的接口类型设计, 它们的实现和设计理念有所不同。本文是对这些语言的接口设计的简单对比,以更全面了解该类型。 2 Java 中的接口设计Java 接口Java 中的接口是明确声明的,类型必须显式实现接口。接口定义了一组方法,但不包含任何实现。类通过 implements 关键字来声明自己实现某个接... 1 简介不同语言都有类似于go的接口类型,Java, Python 3, 和 Rust 都有类似的接口类型设计, 它们的实现和设计理念有所不同。本文是对这些语言的接口设计的简单对比,以更全面了解该类型。 2 Java 中的接口设计Java 接口Java 中的接口是明确声明的,类型必须显式实现接口。接口定义了一组方法,但不包含任何实现。类通过 implements 关键字来声明自己实现某个接...
- 2025-11-25:统计极差最大为 K 的分割方式数。用go语言,给定一个整数数组 nums 和一个整数 k。要求把 nums 划分成若干个相邻且非空的子数组(分段),使得每一段内元素的最大值与最小值之差不超过 k。求符合条件的所有划分方案的数量。结果可能很大,请对 1000000007 取模后输出。2 <= nums.length <= 50000。1 <= nums[i] <= 100... 2025-11-25:统计极差最大为 K 的分割方式数。用go语言,给定一个整数数组 nums 和一个整数 k。要求把 nums 划分成若干个相邻且非空的子数组(分段),使得每一段内元素的最大值与最小值之差不超过 k。求符合条件的所有划分方案的数量。结果可能很大,请对 1000000007 取模后输出。2 <= nums.length <= 50000。1 <= nums[i] <= 100...
- 1 简介Go 的接口(interface)是其语言的特性,涉及到了一些底层设计和意图,下面是详细的分析其底层设计原理和意图:Go 语言中的 interface 类型设计是为了强调灵活性和简洁性。隐式实现:Go 中的接口类型不需要显式声明“实现某个接口”,只要一个类型拥有接口所要求的所有方法,它就自动实现了该接口。这样可以更自由地组合代码,而不必担心每个类型都需要显式地声明“我实现了这个接口... 1 简介Go 的接口(interface)是其语言的特性,涉及到了一些底层设计和意图,下面是详细的分析其底层设计原理和意图:Go 语言中的 interface 类型设计是为了强调灵活性和简洁性。隐式实现:Go 中的接口类型不需要显式声明“实现某个接口”,只要一个类型拥有接口所要求的所有方法,它就自动实现了该接口。这样可以更自由地组合代码,而不必担心每个类型都需要显式地声明“我实现了这个接口...
- 2025-11-24:统计计算机解锁顺序排列数。用go语言,给定长度为 n 的数组 complexity,表示编号为 0 到 n-1 的 n 台计算机各自密码的复杂度(且复杂度两两不同)。编号为 0 的计算机一开始已处于解锁状态,作为起点。其余每台计算机 i 只能在此前已经解锁过某台编号为 j 的计算机的情况下被解开,且该 j 必须满足两点:j < i 且 complexity[j] < c... 2025-11-24:统计计算机解锁顺序排列数。用go语言,给定长度为 n 的数组 complexity,表示编号为 0 到 n-1 的 n 台计算机各自密码的复杂度(且复杂度两两不同)。编号为 0 的计算机一开始已处于解锁状态,作为起点。其余每台计算机 i 只能在此前已经解锁过某台编号为 j 的计算机的情况下被解开,且该 j 必须满足两点:j < i 且 complexity[j] < c...
- 2025-11-23:数组元素相等转换。用go语言,给出一个长度为 n 的数组 nums,元素仅为 1 或 -1,和一个非负整数 k。允许你执行不超过 k 次以下变换:选定一个索引 i(0 ≤ i < n−1),把位置 i 和 i+1 的两个数同时取相反数(即把它们的符号都反过来)。同一个索引可以在不同操作中重复选择。判断是否存在一种不超过 k 步的操作序列,使得操作结束后数组中的所有元素都... 2025-11-23:数组元素相等转换。用go语言,给出一个长度为 n 的数组 nums,元素仅为 1 或 -1,和一个非负整数 k。允许你执行不超过 k 次以下变换:选定一个索引 i(0 ≤ i < n−1),把位置 i 和 i+1 的两个数同时取相反数(即把它们的符号都反过来)。同一个索引可以在不同操作中重复选择。判断是否存在一种不超过 k 步的操作序列,使得操作结束后数组中的所有元素都...
- 1 简介为什么map数据结构在大多语言是无序?本文通过一些计算例子说明和帮助理解。通过一个具体的例子来说明 哈希值的计算是基于键的内容,而不是插入顺序。示例:假设我们有一个 map,它的键是字符串,值是整数。我们将通过计算每个键的哈希值来展示 map 中的元素是如何存储的。 2 计算原理和示例哈希表的基本原理哈希表通过一个 哈希函数 将键映射到哈希表的桶(bucket)中。哈希函数通常会根... 1 简介为什么map数据结构在大多语言是无序?本文通过一些计算例子说明和帮助理解。通过一个具体的例子来说明 哈希值的计算是基于键的内容,而不是插入顺序。示例:假设我们有一个 map,它的键是字符串,值是整数。我们将通过计算每个键的哈希值来展示 map 中的元素是如何存储的。 2 计算原理和示例哈希表的基本原理哈希表通过一个 哈希函数 将键映射到哈希表的桶(bucket)中。哈希函数通常会根...
- 1 简介在 Go 中,map 是 无序的,这是由其底层设计和性能优化决定的。本文试图解释和分析为什么 Go 的 map 不能保证元素的顺序,探讨其底层实现原理。 2. Go Map 的底层实现原理Go 的 map 是基于 哈希表(Hash Table)实现的。哈希表的基本思想是通过哈希函数(hash function)将键(key)映射到一个数组或桶(bucket)中。哈希表通常能够实现 ... 1 简介在 Go 中,map 是 无序的,这是由其底层设计和性能优化决定的。本文试图解释和分析为什么 Go 的 map 不能保证元素的顺序,探讨其底层实现原理。 2. Go Map 的底层实现原理Go 的 map 是基于 哈希表(Hash Table)实现的。哈希表的基本思想是通过哈希函数(hash function)将键(key)映射到一个数组或桶(bucket)中。哈希表通常能够实现 ...
- 2025-11-22:最大好子树分数。用go语言,给定一棵以节点 0 为根的无向树,节点编号为 0 到 n-1。每个节点 i 有一个整数值 vals[i],其父节点由数组 par 给出。对任一节点 u,考虑以 u 为根的那棵包含 u 本身及其所有后代的子树。在这棵子树里任选若干节点(可以不选),把它们的值组成一个集合。如果把这些被选数值按十进制展开后,所有数位中每个十进制数字 0 到 9 在... 2025-11-22:最大好子树分数。用go语言,给定一棵以节点 0 为根的无向树,节点编号为 0 到 n-1。每个节点 i 有一个整数值 vals[i],其父节点由数组 par 给出。对任一节点 u,考虑以 u 为根的那棵包含 u 本身及其所有后代的子树。在这棵子树里任选若干节点(可以不选),把它们的值组成一个集合。如果把这些被选数值按十进制展开后,所有数位中每个十进制数字 0 到 9 在...
- 在 Python 中,你可以使用切片(slice)来获取数组(列表)的最后 3 项。以下是几种常见的方法: 方法 1:使用负数索引arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]last_three = arr[-3:] # 从倒数第3项到末尾print(last_three) # 输出: [7, 8, 9] 方法 2:使用 len() 计算索引arr = [1, 2,... 在 Python 中,你可以使用切片(slice)来获取数组(列表)的最后 3 项。以下是几种常见的方法: 方法 1:使用负数索引arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]last_three = arr[-3:] # 从倒数第3项到末尾print(last_three) # 输出: [7, 8, 9] 方法 2:使用 len() 计算索引arr = [1, 2,...
上滑加载中
推荐直播
-
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中 -
码道新技能,AI 新生产力——从自动视频生成到开源项目解析2026/04/08 周三 19:00-21:00
童得力-华为云开发者生态运营总监/何文强-道通无人机企业AI提效负责人
本次华为云码道 Skill 实战活动,聚焦两大 AI 开发场景:通过实战教学,带你打造 AI 编程自动生成视频 Skill,并实现对 GitHub 热门开源项目的智能知识抽取,手把手掌握 Skill 开发全流程,用 AI 提升研发效率与内容生产力。
即将直播
热门标签