已有网站域名 怎么做网站,如何搭建企业官网,家装网络平台哪家好,wordpress去除版本号题目#xff1a;
给你一个整数数组 nums。 返回两个#xff08;不一定不同的#xff09;质数在 nums 中 下标 的 最大距离。
示例 1#xff1a; 输入#xff1a; nums [4,2,9,5,3] 输出#xff1a; 3 解释#xff1a; nums[1]、nums[3] 和 nums[4] 是质数。因此答案是…题目
给你一个整数数组 nums。 返回两个不一定不同的质数在 nums 中 下标 的 最大距离。
示例 1 输入 nums [4,2,9,5,3] 输出 3 解释 nums[1]、nums[3] 和 nums[4] 是质数。因此答案是 |4 - 1| 3。
示例 2 输入 nums [4,8,2,8] 输出 0 解释 nums[2] 是质数。因为只有一个质数所以答案是 |2 - 2| 0。
提示 1 nums.length 3 * 105 1 nums[i] 100 输入保证 nums 中至少有一个质数。
思路
打表将100以内的质数先穷举出来,然后用一个tmp记录第一个质数的下标后面每遇到一个质数就去更新ans
代码
class Solution {// 打表将100以内的质数先穷举出来// 然后用一个tmp记录第一个质数的下标后面每遇到一个质数就去更新anspublic int maximumPrimeDifference(int[] nums) {SetInteger primes new HashSet(Arrays.asList(2, 3, 5, 7, 11,13, 17, 19, 23, 29,31, 37, 41, 43, 47,53, 59, 61, 67, 71,73, 79, 83, 89, 97));int n nums.length;int tmp -1, ans 0;for (int i 0; i n; i) {if (primes.contains(nums[i])) {if (tmp ! -1) {ans Math.max(ans, i - tmp);} else {tmp i;}}}return ans;}
}