2024-11-30:质数的最大距离。用 go 语言,给定一个整数数组 nums,请找出两个(可以是相同的)质数在该数组中的下标之间的最大距离。 提示: nums 的长度在 [1,3*10^5] 之间。 num
2024-11-30:质数的最大距离。用 go 语言,给定一个整数数组 nums,请找出两个(可以是相同的)质数在该数组中的下标之间的最大距离。
提示:
nums 的长度在[1,3*10^5]之间。
nums 的每个元素的值在[1,100]。
输入保证 nums 中至少有一个质数。
输入: nums = [4,2,9,5,3]。
输出: 3。
解释: nums[1]、nums[3] 和 nums[4] 是质数。因此答案是 |4 - 1| = 3。
答案 2024-11-30:
题目来自 leetcode3115。
大体步骤如下:
1.定义一个函数 maximumPrimeDifference(nums []int) int
用于计算质数的最大距离。其中,根据给定的质数列表 primes 和数组 nums:
创建一个 map primeSet 用于存储质数的出现情况。
遍历 nums 数组,找到第一个质数的下标,并记录在变量 first 中。
再次遍历 nums 数组,找到最后一个质数的下标,并记录在变量 last 中。
返回最后一个质数的下标与第一个质数的下标之间的距离。
2.在主函数 main 中,定义一个示例数组 nums := []int{4, 2, 9, 5, 3}。
3.调用 maximumPrimeDifference(nums)
函数,并输出结果。
总体时间复杂度为 O(n), 其中 n 为数组 nums 的长度。
总体空间复杂度为 O(1),并不随输入规模变化。
Go 完整代码如下:
Rust 完整代码如下:
版权声明: 本文为 InfoQ 作者【福大大架构师每日一题】的原创文章。
原文链接:【http://xie.infoq.cn/article/72edfe90da317ddb34122d780】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论