- 一、引言随着多核处理器的普及和分布式系统的广泛应用,并发编程成为现代软件开发的必备能力。如何安全、高效地管理多个线程或进程的协作,已经成为性能优化和系统稳定性的关键。本文将系统梳理并发编程中的无锁数据结构设计、CAS操作的原理与实践、线程池调度机制、以及死锁检测的常见方法,为开发者提供一套理论与实践并重的参考路线。 二、并发编程基础 2.1 并发与并行并发(Concurrency):多个任... 一、引言随着多核处理器的普及和分布式系统的广泛应用,并发编程成为现代软件开发的必备能力。如何安全、高效地管理多个线程或进程的协作,已经成为性能优化和系统稳定性的关键。本文将系统梳理并发编程中的无锁数据结构设计、CAS操作的原理与实践、线程池调度机制、以及死锁检测的常见方法,为开发者提供一套理论与实践并重的参考路线。 二、并发编程基础 2.1 并发与并行并发(Concurrency):多个任...
- 2026-01-24:数组元素分组。用go语言,给定一个整数数组 nums 和一个整数 k,判断能否把数组里的所有元素划分成若干个大小为 k 的子集合,要求每个子集合内部没有重复值,并且数组中的每个元素只能出现在一个子集合中。若存在满足这些条件的划分方案则返回 true,否则返回 false。1 <= nums.length <= 100000。1 <= nums[i] <= 100000。... 2026-01-24:数组元素分组。用go语言,给定一个整数数组 nums 和一个整数 k,判断能否把数组里的所有元素划分成若干个大小为 k 的子集合,要求每个子集合内部没有重复值,并且数组中的每个元素只能出现在一个子集合中。若存在满足这些条件的划分方案则返回 true,否则返回 false。1 <= nums.length <= 100000。1 <= nums[i] <= 100000。...
- 使用Java解决 - 输入三个整数x,y,z,请把这三个数由小到大输出在日常编程中,我们经常需要对一些数据进行排序。本文将介绍如何使用Java语言来实现一个简单的功能:输入三个整数x, y, z,并将这三个数由小到大输出。我们将通过几种不同的方法来实现这一功能,包括使用条件语句和数组排序。方法一:使用条件语句代码实现import java.util.Scanner;public class ... 使用Java解决 - 输入三个整数x,y,z,请把这三个数由小到大输出在日常编程中,我们经常需要对一些数据进行排序。本文将介绍如何使用Java语言来实现一个简单的功能:输入三个整数x, y, z,并将这三个数由小到大输出。我们将通过几种不同的方法来实现这一功能,包括使用条件语句和数组排序。方法一:使用条件语句代码实现import java.util.Scanner;public class ...
- 2026-01-22:删除可整除和后的最小数组和。用go语言,给定一个整数数组 nums 和一个整数 k。你可以反复挑选数组中相邻的一段元素——如果这段的元素和是 k 的倍数,就把它从数组中删掉,剩下的元素会自动合并成新的数组。经过任意次数这样的删除后,数组中剩下的所有数的和最少能是多少?请输出这个最小可能的总和。1 <= nums.length <= 100000。1 <= nums[i]... 2026-01-22:删除可整除和后的最小数组和。用go语言,给定一个整数数组 nums 和一个整数 k。你可以反复挑选数组中相邻的一段元素——如果这段的元素和是 k 的倍数,就把它从数组中删掉,剩下的元素会自动合并成新的数组。经过任意次数这样的删除后,数组中剩下的所有数的和最少能是多少?请输出这个最小可能的总和。1 <= nums.length <= 100000。1 <= nums[i]...
- 2026-01-21:区间乘法查询后的异或Ⅰ。用go语言,给定一个长度为 n 的整数数组 nums 和 q 条查询,每条查询用四个整数表示:[li, ri, ki, vi]。对每一条查询,从位置 li 开始,每次向右移动 ki 个索引并处理当前位置,直到索引超过 ri 为止;处理方式是将当前 nums[idx] 乘以 vi,然后对 1000000007 取模并写回数组。把所有查询按顺序执行完... 2026-01-21:区间乘法查询后的异或Ⅰ。用go语言,给定一个长度为 n 的整数数组 nums 和 q 条查询,每条查询用四个整数表示:[li, ri, ki, vi]。对每一条查询,从位置 li 开始,每次向右移动 ki 个索引并处理当前位置,直到索引超过 ri 为止;处理方式是将当前 nums[idx] 乘以 vi,然后对 1000000007 取模并写回数组。把所有查询按顺序执行完...
- 本文聚焦Python数据建模领域中dataclasses与Pydantic的职责边界划分,结合真实开发实践中的踩坑经历与技术思考,打破“非此即彼”的选型误区。文章指出两者并非替代关系,而是基于场景的互补工具:dataclasses作为轻量数据载体,适用于内部模块高效数据流转;Pydantic主打数据治理能力,擅长外部交互场景的校验与转换。 本文聚焦Python数据建模领域中dataclasses与Pydantic的职责边界划分,结合真实开发实践中的踩坑经历与技术思考,打破“非此即彼”的选型误区。文章指出两者并非替代关系,而是基于场景的互补工具:dataclasses作为轻量数据载体,适用于内部模块高效数据流转;Pydantic主打数据治理能力,擅长外部交互场景的校验与转换。
- 2026-01-20:按策略买卖股票的最佳时机。用go语言,给出两个等长整数数组 prices 和 strategy:prices[i] 表示第 i 天的股票价格;strategy[i] 表示第 i 天的操作:-1 为买入一股,0 为不操作,1 为卖出一股。还有一个偶数 k。你可以选择是否进行一次修改操作(也可以不改)。一次修改的规则是:选定 strategy 中恰好长度为 k 的一段连续位... 2026-01-20:按策略买卖股票的最佳时机。用go语言,给出两个等长整数数组 prices 和 strategy:prices[i] 表示第 i 天的股票价格;strategy[i] 表示第 i 天的操作:-1 为买入一股,0 为不操作,1 为卖出一股。还有一个偶数 k。你可以选择是否进行一次修改操作(也可以不改)。一次修改的规则是:选定 strategy 中恰好长度为 k 的一段连续位...
- 2026-01-17:完美对的数目。用go语言,给定一个整数数组 nums。我们把满足下面条件的一对索引 (i, j)(且 i < j)称为“完美对”:记 a = nums[i],b = nums[j];在两者差的绝对值 |a - b| 和和的绝对值 |a + b| 中,较小的那个不大于 a、b 的绝对值中的较小值;在两者差的绝对值 |a - b| 和和的绝对值 |a + b| 中,较大的那... 2026-01-17:完美对的数目。用go语言,给定一个整数数组 nums。我们把满足下面条件的一对索引 (i, j)(且 i < j)称为“完美对”:记 a = nums[i],b = nums[j];在两者差的绝对值 |a - b| 和和的绝对值 |a + b| 中,较小的那个不大于 a、b 的绝对值中的较小值;在两者差的绝对值 |a - b| 和和的绝对值 |a + b| 中,较大的那...
- 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,... 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,...
- 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,... 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,...
- 2026-01-14:排序排列。用go语言,有两个等长的整数数组 value 和 limit,表示 n 个元素的得分和操作限制。初始时所有元素都处于未激活状态,你可以按任意顺序逐个激活它们,但激活第 i 个元素时,当前处于“活跃”状态的元素数量必须严格小于 limit[i]。每次激活第 i 个元素时,就把 value[i] 加入累计得分(即统计所有曾被激活过的元素的 value 之和)。此外... 2026-01-14:排序排列。用go语言,有两个等长的整数数组 value 和 limit,表示 n 个元素的得分和操作限制。初始时所有元素都处于未激活状态,你可以按任意顺序逐个激活它们,但激活第 i 个元素时,当前处于“活跃”状态的元素数量必须严格小于 limit[i]。每次激活第 i 个元素时,就把 value[i] 加入累计得分(即统计所有曾被激活过的元素的 value 之和)。此外...
- 2026-01-13:排序排列。用go语言,给定一个长度为 n 的整数数组 nums,数组中的元素构成了 0 到 n−1 的一个排列(即每个数恰好出现一次)。允许你对任意一对下标 i、j 交换元素,但前提是这两个位置上的数进行按位与运算后等于某个非负整数 k(即 nums[i] & nums[j] == k)。你可以进行任意次这样的满足条件的交换。求出能够使数组变为非递减(从小到大不严格)顺... 2026-01-13:排序排列。用go语言,给定一个长度为 n 的整数数组 nums,数组中的元素构成了 0 到 n−1 的一个排列(即每个数恰好出现一次)。允许你对任意一对下标 i、j 交换元素,但前提是这两个位置上的数进行按位与运算后等于某个非负整数 k(即 nums[i] & nums[j] == k)。你可以进行任意次这样的满足条件的交换。求出能够使数组变为非递减(从小到大不严格)顺...
- “字段多一个,凌晨三点炸一次”:聊聊流数据里的 Schema 演化,到底该怎么扛 “字段多一个,凌晨三点炸一次”:聊聊流数据里的 Schema 演化,到底该怎么扛
- 2026-01-11:三段式数组Ⅱ。用go语言,给定长度为 n 的整数序列 nums,要求选出一个包含至少四个元素的连续区间 [a, b](0 ≤ a < b < n),并在区间内选两个切分点 a < i < j < b,使得区间被分成三段:第一段从 a 到 i 元素严格上升,第二段从 i 到 j 元素严格下降,第三段从 j 到 b 元素又严格上升。在所有满足此模式的连续区间中,找出其元素和... 2026-01-11:三段式数组Ⅱ。用go语言,给定长度为 n 的整数序列 nums,要求选出一个包含至少四个元素的连续区间 [a, b](0 ≤ a < b < n),并在区间内选两个切分点 a < i < j < b,使得区间被分成三段:第一段从 a 到 i 元素严格上升,第二段从 i 到 j 元素严格下降,第三段从 j 到 b 元素又严格上升。在所有满足此模式的连续区间中,找出其元素和...
- Java数据结构详解 Java数据结构详解
上滑加载中
推荐直播
-
华为云码道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华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签