3115.力扣每日一题7/2 Java

news2024/12/24 0:09:23
  • 博客主页:音符犹如代码
  • 系列专栏:算法练习
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

目录

思路

解题方法

时间复杂度

空间复杂度

Code

总结


思路

这道题的解题思路是首先理解题目要求:在给定的整数数组中找到任意两个质数之间的最大距离。为了找到这个最大距离,我们需要遍历数组,同时跟踪遇到的最小质数和最大质数的位置(即下标)。当我们遍历数组时,对于每个元素,我们使用一个辅助函数来判断它是否是质数。如果是质数,我们就更新最小质数和最大质数的位置(如果还没有找到最小质数,就将其设置为当前质数的位置;对于最大质数的位置,我们总是更新为当前质数的位置,因为我们想要找到的是任意两个质数之间的最大距离)。最后,我们返回最大质数和最小质数位置之间的差值作为结果。

方法

  1. 初始化:设置两个变量minPrimeIndexmaxPrimeIndex为-1,用于跟踪最小质数和最大质数的位置。

  2. 遍历数组:使用循环遍历给定的整数数组。

  3. 质数判断:对于数组中的每个元素,使用辅助函数isPrime来判断它是否是质数。

  4. 更新位置

    • 如果当前元素是质数,并且还没有找到最小质数(即minPrimeIndex为-1),则更新minPrimeIndex为当前元素的位置。
    • 无论是否已经找到最小质数,都更新maxPrimeIndex为当前质数的位置,因为我们想要跟踪遇到过的最大质数的位置。
  5. 返回结果:遍历完数组后,检查minPrimeIndexmaxPrimeIndex的值。如果它们相等(即没有找到质数),则返回0;否则,返回maxPrimeIndex - minPrimeIndex作为结果。

时间复杂度

时间复杂度主要取决于两个因素:遍历数组和质数判断。

  • 遍历数组是线性的,即O(n),其中n是数组的长度。
  • 质数判断的时间复杂度在最坏情况下是O(sqrt(m)),其中m是当前要判断的数。但是,由于我们只对数组中的每个元素进行一次质数判断,并且数组的长度是有限的,因此我们可以将质数判断的总体时间复杂度视为与数组长度n成线性关系(尽管实际上是一个更复杂的函数,但在这里我们可以将其简化为与n相关的函数)。

空间复杂度

空间复杂度是O(1),因为我们只使用了几个变量(minPrimeIndexmaxPrimeIndex以及isPrime函数中的几个循环变量)来存储状态,这些变量的数量不随输入数组的大小而变化。我们没有使用任何与输入数组大小成正比的额外空间来存储数据。

Code

class Solution {  
    public int maximumPrimeDifference(int[] nums) {  
        int minPrimeIndex = -1; // 记录最小质数的下标  
        int maxPrimeIndex = -1; // 记录最大质数的下标  
  
        for (int i = 0; i < nums.length; i++) {  
            if (isPrime(nums[i])) {  
                if (minPrimeIndex == -1) {  
                    minPrimeIndex = i; // 更新最小质数的下标  
                }  
                maxPrimeIndex = i; // 更新最大质数的下标(每遇到一个质数就更新)  
            }  
        }  
  
        // 如果数组中只有一个质数,则最大距离为0  
        if (minPrimeIndex == maxPrimeIndex) {  
            return 0;  
        }  
  
        // 返回最大质数和最小质数之间的下标差  
        return maxPrimeIndex - minPrimeIndex;  
    }  
  
    private boolean isPrime(int n) {  
        if (n <= 1) {  
            return false;  
        }  
        for (int i = 2; i * i <= n; i++) {  
            if (n % i == 0) {  
                return false;  
            }  
        }  
        return true;  
    }  
}

总结

对于在给定整数数组中找到任意两个质数之间最大距离的问题,上述的直接遍历加状态跟踪的解法通常是最简单且直接的方法。虽然可以探索其他解法或优化思路,但在实际应用中,这些方法的效率和可行性可能因问题的具体条件而异。在没有特定要求或限制的情况下,推荐使用直接且有效的方法来解决问题。

Blessed is he whose fame does not outshine his truth. 有福之人,是因为他的真实比他的名誉更耀眼。——泰戈尔

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1888247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot+mail 轻松实现各类邮件自动推送

一、简介 在实际的项目开发过程中&#xff0c;经常需要用到邮件通知功能。例如&#xff0c;通过邮箱注册&#xff0c;邮箱找回密码&#xff0c;邮箱推送报表等等&#xff0c;实际的应用场景非常的多。 早期的时候&#xff0c;为了能实现邮件的自动发送功能&#xff0c;通常会…

android iconfont带图标的图文并茂的一种实现

android实现图文并茂方法很多。 这里针对&#xff0c;仅本地图标&#xff0c;需要对齐&#xff0c;任意位置&#xff0c;兼容换行导致后面空白的问题做的一种方案。 www.iconfont.cn&#xff0c;注册&#xff1b; 上传svg的icon&#xff1b; 下载项目得到iconfont.ttf&#xf…

泰雷茲具有首个通过FIPS 140-3 三级认证的HSMs

泰雷兹LunaHsm是业界首款通过FIPS140-33级认证的解决方案&#xff0c;安策引进泰雷兹HSM产品可以帮助您满足您的数据安全合规性需求&#xff0c;阻力企业提高竞争力。 安策提供泰雷茲ThalesLunaHSMs成为首个通过FIPS140-3三级认证的硬件安全模块图 我们很高兴地宣布&#xff0c…

Java 汉诺塔问题 详细分析

汉诺塔 汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小…

Ignis 应用: 社交 + 游戏 + 工业4.0,Ignis 构建Web3生态圈

引言 在数字经济快速发展的今天&#xff0c;Web3技术为我们带来了前所未有的变革。作为Ardor平台的主要子链&#xff0c;Ignis公链在推动Web3生态系统建设中扮演了重要角色。本文将通过介绍Vessel Chain、Mythical Beings和Bridge Champ等应用&#xff0c;探讨Ignis公链如何通…

Android原生与flutter模块交互

Flutter定义了三种不同类型的Channel&#xff1a; BasicMessageChannel&#xff1a;用于传递字符串和半结构化的信息&#xff0c;持续通信&#xff0c;收到消息后可以回复此次消息&#xff0c;如&#xff1a;Native将遍历到的文件信息陆续传递到Dart&#xff0c;在比如&#xf…

【Python机器学习系列】建立决策树模型预测小麦品种(案例+源码)

这是我的第314篇原创文章。 一、引言 对于表格数据&#xff0c;一套完整的机器学习建模流程如下&#xff1a; 针对不同的数据集&#xff0c;有些步骤不适用&#xff0c;其中橘红色框为必要步骤&#xff0c;欢迎大家关注翻看我之前的一些相关文章。前面我介绍了机器学习模型的二…

MySQL 9.0 发布了!

从昨晚开始&#xff0c;在DBA群里大家就在讨论MySQL 9.0发布的事情&#xff0c;但是Release Note和官方文档都没有更新&#xff0c;所以今天早上一上班就赶紧瞅了下具体更新了哪些内容&#xff1f; 整体看来&#xff0c;基本没什么创新。下面是9.0新增或废弃的一些特性。 &…

自动批量将阿里云盘文件发布成WordPress文章脚本源码(以RiPro主题为例含付费信息下载地址SEO等自动设置)源码

背景 很多资源下载站&#xff0c;付费资源下载站&#xff0c;付费内容查看等都可以用WordPress站点发布内容&#xff0c;这些站点一般会基于一个主题&#xff0c;付费信息作为文章附属的信息发布&#xff0c;底层存储在WP表里&#xff0c;比如日主题&#xff0c;子比主题等。 …

计算机是如何看到图像的

本节课为「计算机视觉 CV 核心知识」第 4 节&#xff1b; 「AI秘籍」系列课程&#xff1a; 人工智能应用数学基础人工智能Python基础人工智能基础核心知识人工智能BI核心知识人工智能CV核心知识 本文涉及代码&#xff1a;https://github.com/hivandu/AI_Cheats Hi, 大家好。我…

【MySQL备份】Percona XtraBackup压缩备份实战篇

目录 1.前言 2.准备工作 2.1.环境信息 2.2.配置/etc/my.cnf文件 2.3.授予root用户BACKUP_ADMIN权限 2.4.安装qpress 3. 压缩备份 3.1.创建压缩备份 3.2.创建全量备份 3.3.对比两个备份的大小 4.解压备份 5.准备备份 6.备份恢复 ​7.问题分析 8.总结 "实战…

网络连接之队头阻塞!!!

一、什么是队头阻塞 队头阻塞&#xff0c;在网络模型中简单理解就是&#xff0c;对于队列型的请求模型&#xff0c;如HTTP的请求-响应模型、TCP的ACK确认机制&#xff0c;都依赖得到一个具体的响应包&#xff0c;如果收不到这个响应包&#xff0c;那下一个请求就不能发&#x…

太阳辐射系统日光全光谱模拟太阳光模拟器

太阳光模拟器是一种用于评估太阳能电池性能的重要设备。它能够模拟太阳光的特性&#xff0c;通过测试电池的短路电流、开路电压、填充因子和光电转化效率等关键指标&#xff0c;来评估电池的性能优劣。 设备型号&#xff1a;KYF-GC004品牌制造商&#xff1a;科迎法电气太阳光模…

08 docker Registry搭建docker私仓

目录 本地镜像发布流程 1. docker pull registry 下载镜像 2. docker run 运行私有库registry 3. docker commit 构建镜像 4. docker tag 修改新镜像&#xff0c;使之符合私服规范tag 5. 修改配置文件使之支持http 6. curl验证私服库上有什么镜像 7. push推送 pull拉取 …

C# WPF自制批注工具(方便标记重点和演示)

在教学和演示中&#xff0c;我们通常需要对重点进行批注&#xff0c;下载安装第三方工具批注显得很麻烦。本篇使用WPF开发了一个批注工具&#xff0c;工具小巧&#xff0c;功能丰富&#xff0c;非常使用日常免费使用&#xff0c;或者进行再次开发。 自制批注工具具有以下功能特…

构建 Audio Unit 的流程

构建 Audio Unit 的流程 构建 Audio Unit 的流程指定 Audio Unit 的类型创建 Audio Unit设置 Audio Unit 的属性 构建 Audio Unit 的流程 iOS 有一个用于直接处理 audio units 的 API&#xff0c;另一个用于处理 audio processing graphs&#xff0c;可以同时使用这两种 API。…

第十四章 路由器 OSPF 动态路由配置

实验目的 掌握 OSPF 协议的配置方法&#xff1a; 掌握查看通过动态路由协议 OSPF 学习产生的路由&#xff1b; 熟悉广域网线缆的链接方式&#xff1b; 实验背景 假设校园网通过一台三层交换机连到校园网出口路由器上&#xff0c; 路由器再和校园外的另一台路由器连接。…

【C++题解】1456. 淘淘捡西瓜

问题&#xff1a;1456. 淘淘捡西瓜 类型&#xff1a;贪心 题目描述&#xff1a; 地上有一排西瓜&#xff0c;每个西瓜都有自己的重量。淘淘有一个包&#xff0c;包的容量是固定的&#xff0c;淘淘希望尽可能在包里装更多的西瓜&#xff08;当然要装整个的&#xff0c;不能切开…

开放签电子签章,让签字有迹可循

开放签&#xff08;企业版&#xff09;V2.0.5版本上线后&#xff0c;系统支持一键查询电子文件的签署操作记录&#xff0c;支持一键生成详细的签署记录报告&#xff0c;详细请看下图&#xff1a; 1、操作记录详情&#xff1a; 从合同发起、填写、签署、撤销等环节全流程展示操…

创新与增长:eBest完美收官FBIF2024食品创新展

FBIF2024食品创新展今天在上海会展中心圆满落幕。此次大会以食品创新、渠道创新、营销创新及科技创新为主题&#xff0c;为众多参展企业及来宾带来一场蕴含创新思维的盛宴。 为什么要“破卷出新”&#xff1f;如今中国食品品牌面临的最大挑战就是在国内饱和的市场里出爆品&…