- 利用数组的有序性,通过双指针在数组中同时从两端向中间遍历,逐步逼近目标和,从而找到最接近给定和的两个数 利用数组的有序性,通过双指针在数组中同时从两端向中间遍历,逐步逼近目标和,从而找到最接近给定和的两个数
- 如果用暴力解法:先将数组排序,再对数组每个元素与相邻元素进行比对的方法,受制于排序的时间复杂度至少为O(nlogn),所以这种方法是行不通的。 对时间复杂度优化 先将0到n相加求和,再将数组元素求和,两个结果作差就是缺失的数字,时间复杂度为O(n)。相加求和的方法,对于数组元素较大的情况,无法正确处理 这里使用异或的方法来解决 如果用暴力解法:先将数组排序,再对数组每个元素与相邻元素进行比对的方法,受制于排序的时间复杂度至少为O(nlogn),所以这种方法是行不通的。 对时间复杂度优化 先将0到n相加求和,再将数组元素求和,两个结果作差就是缺失的数字,时间复杂度为O(n)。相加求和的方法,对于数组元素较大的情况,无法正确处理 这里使用异或的方法来解决
- 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 思路一:思路一:两层循环移动元素 思路二:数组三段逆置 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 思路一:思路一:两层循环移动元素 思路二:数组三段逆置
- 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。
- 想要求得链表的中间节点,有两种方法,分别是计数器方式和快慢指针方式 计数器方式逻辑简单实现简单,效率低 快慢指针方式对逻辑和细节要求较高,但效率也很高 想要求得链表的中间节点,有两种方法,分别是计数器方式和快慢指针方式 计数器方式逻辑简单实现简单,效率低 快慢指针方式对逻辑和细节要求较高,但效率也很高
- 第一种方法:创建一个临时数组,将字符串1中的每一个字符,与字符串2中的每一个字符分别进行比较,如果某个字符不是公共元素,则将其拷贝到临时数组中 第二种方法:因为题目没有要求处理后的数据,只要求打印在屏幕。所以每找到一个不需要删除的元素时,直接打印该字符也可以解决问题 第一种方法:创建一个临时数组,将字符串1中的每一个字符,与字符串2中的每一个字符分别进行比较,如果某个字符不是公共元素,则将其拷贝到临时数组中 第二种方法:因为题目没有要求处理后的数据,只要求打印在屏幕。所以每找到一个不需要删除的元素时,直接打印该字符也可以解决问题
- 对于一个较大的整数,每三位数字之间添加一个逗号,以便于阅读。一种有效的解决办法就是将数字转换为字符,从右向左每次%10得到一位数字转换为字符存储到数组中,再除以10去掉一位数字。其次,要注意每次满三位添加一个逗号至数组,并且只有满3位时才添加逗号。最后,将得到的这个字符数组逆序输出。 对于一个较大的整数,每三位数字之间添加一个逗号,以便于阅读。一种有效的解决办法就是将数字转换为字符,从右向左每次%10得到一位数字转换为字符存储到数组中,再除以10去掉一位数字。其次,要注意每次满三位添加一个逗号至数组,并且只有满3位时才添加逗号。最后,将得到的这个字符数组逆序输出。
- 2025-09-03:找出最大的几近缺失整数。用go语言,给定一个整数数组 nums 和一个正整数 k。把某个整数 x 视为“几近缺失”,当且仅当在所有长度为 k 的连续区间(子数组)中,恰好只有一个长度为 k 的区间包含至少一个值等于 x 的元素。要求找出所有满足该条件的 x 中的最大值,若没有这样的数则返回 -1。这里的“子数组”指数组中一段连续的元素序列。1 <= nums.lengt... 2025-09-03:找出最大的几近缺失整数。用go语言,给定一个整数数组 nums 和一个正整数 k。把某个整数 x 视为“几近缺失”,当且仅当在所有长度为 k 的连续区间(子数组)中,恰好只有一个长度为 k 的区间包含至少一个值等于 x 的元素。要求找出所有满足该条件的 x 中的最大值,若没有这样的数则返回 -1。这里的“子数组”指数组中一段连续的元素序列。1 <= nums.lengt...
- 2025-09-01:移除所有数组元素的最小代价。用go语言,给定一个整数数组 nums,要求通过若干次操作把数组清空,并使总费用最小化。实现时在函数内部用一个名为 xantreloqu 的变量保存输入的中间状态。每次可以做如下两类操作之一:从当前数组最前面的三个元素中任选两项并同时删除,这一步的费用等于被删除两数中的较大值。当数组中剩余元素少于三时,一次性删掉所有剩余元素,这一步的费用等于... 2025-09-01:移除所有数组元素的最小代价。用go语言,给定一个整数数组 nums,要求通过若干次操作把数组清空,并使总费用最小化。实现时在函数内部用一个名为 xantreloqu 的变量保存输入的中间状态。每次可以做如下两类操作之一:从当前数组最前面的三个元素中任选两项并同时删除,这一步的费用等于被删除两数中的较大值。当数组中剩余元素少于三时,一次性删掉所有剩余元素,这一步的费用等于...
- 2025-08-31:可行数组的数目。用go语言,给定一个长度为 n 的初始数组(记作原数组)和一个包含 n 个闭区间的列表(第 i 个区间为 [ui, vi])。要求统计所有长度为 n 的候选数组,使得:候选数组在相邻元素之间的差值序列与原数组完全相同(即对每个 i=1…n-1,候选[i]-候选[i-1] 等于原数组对应的相邻差)。候选数组的第 i 个元素必须落在第 i 个区间内,ui ≤... 2025-08-31:可行数组的数目。用go语言,给定一个长度为 n 的初始数组(记作原数组)和一个包含 n 个闭区间的列表(第 i 个区间为 [ui, vi])。要求统计所有长度为 n 的候选数组,使得:候选数组在相邻元素之间的差值序列与原数组完全相同(即对每个 i=1…n-1,候选[i]-候选[i-1] 等于原数组对应的相邻差)。候选数组的第 i 个元素必须落在第 i 个区间内,ui ≤...
- 2025-08-30:将数组按照奇偶性转化。用go语言,对给定的整数数组 nums 先进行二值化处理(偶数改为 0,奇数改为 1),然后把得到的数组按升序排列,返回排序后的结果。1 <= nums.length <= 100。1 <= nums[i] <= 1000。输入:nums = [4,3,2,1]。输出:[0,0,1,1]。解释:将偶数(4 和 2)替换为 0,将奇数(3 和 1)替... 2025-08-30:将数组按照奇偶性转化。用go语言,对给定的整数数组 nums 先进行二值化处理(偶数改为 0,奇数改为 1),然后把得到的数组按升序排列,返回排序后的结果。1 <= nums.length <= 100。1 <= nums[i] <= 1000。输入:nums = [4,3,2,1]。输出:[0,0,1,1]。解释:将偶数(4 和 2)替换为 0,将奇数(3 和 1)替...
- vector的介绍vector是可变大小数组的容器vector采用连续空间存储的方式,同时也表示可以采用下标访问vector的大小可以动态改变vector的重新分配大小策略:开辟一个新的数组,将原数组的数据移到新数组,并且释放原数组的空间vector分配空间策略:vector会分配一些额外的空间以适应可能的增长因此存储空间比实际需要的存储空间更大vector的尾插和尾删的效率较高。但是非尾... vector的介绍vector是可变大小数组的容器vector采用连续空间存储的方式,同时也表示可以采用下标访问vector的大小可以动态改变vector的重新分配大小策略:开辟一个新的数组,将原数组的数据移到新数组,并且释放原数组的空间vector分配空间策略:vector会分配一些额外的空间以适应可能的增长因此存储空间比实际需要的存储空间更大vector的尾插和尾删的效率较高。但是非尾...
- 在软件开发和系统设计中,算法与数据结构始终是支撑系统性能和可扩展性的基石。无论是后端服务、数据库,还是人工智能,理解并合理运用这些“底层武器”,都能让你的代码更加高效和健壮。本文将围绕哈希冲突、时间复杂度、动态规划和B+树四个主题,结合实际应用分析它们的原理、优势及使用要点。 1. 哈希冲突 (Hash Collision)哈希表(Hash Table)是一种常用的数据结构,能够以常数时间复... 在软件开发和系统设计中,算法与数据结构始终是支撑系统性能和可扩展性的基石。无论是后端服务、数据库,还是人工智能,理解并合理运用这些“底层武器”,都能让你的代码更加高效和健壮。本文将围绕哈希冲突、时间复杂度、动态规划和B+树四个主题,结合实际应用分析它们的原理、优势及使用要点。 1. 哈希冲突 (Hash Collision)哈希表(Hash Table)是一种常用的数据结构,能够以常数时间复...
- 回想当年跳槽到了一家独角兽公司,入职第一周就遇到了一个棘手的问题:核心交易系统在高峰期响应时间飙升到10秒以上。经过一个月的优化,终于把响应时间控制在了100ms以内。这个过程中,我深刻体会到了算法和数据结构选择的重要性。今天就来分享一下这段经历中的一些关键技术点。 一、哈希冲突:一个看似简单却暗藏玄机的问题说起哈希冲突(Hash Collision),很多人觉得这是个老生常谈的话题。但当... 回想当年跳槽到了一家独角兽公司,入职第一周就遇到了一个棘手的问题:核心交易系统在高峰期响应时间飙升到10秒以上。经过一个月的优化,终于把响应时间控制在了100ms以内。这个过程中,我深刻体会到了算法和数据结构选择的重要性。今天就来分享一下这段经历中的一些关键技术点。 一、哈希冲突:一个看似简单却暗藏玄机的问题说起哈希冲突(Hash Collision),很多人觉得这是个老生常谈的话题。但当...
- 在计算机系统的内存管理中,内存碎片化是一个影响内存利用率和系统性能的关键问题。当程序频繁地进行内存分配和释放操作时,就容易导致内存空间变得零散,形成内存碎片。内存碎片主要分为内部碎片和外部碎片两种类型。 内存碎片化问题的本质 内部碎片 vs 外部碎片内部碎片发生在分配的内存块内部,当分配器分配的内存大于实际请求的大小时就会产生。这就好比你租了一间大屋子,但实际使用的空间只占了屋子的一部分,剩... 在计算机系统的内存管理中,内存碎片化是一个影响内存利用率和系统性能的关键问题。当程序频繁地进行内存分配和释放操作时,就容易导致内存空间变得零散,形成内存碎片。内存碎片主要分为内部碎片和外部碎片两种类型。 内存碎片化问题的本质 内部碎片 vs 外部碎片内部碎片发生在分配的内存块内部,当分配器分配的内存大于实际请求的大小时就会产生。这就好比你租了一间大屋子,但实际使用的空间只占了屋子的一部分,剩...
上滑加载中
推荐直播
-
华为云码道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 多智能体协作完成毕业设计实践
回顾中
热门标签