当前位置: 首页 > news >正文

LeetCode 3423.循环数组中相邻元素的最大差值:遍历(模拟)

【LetMeFly】3423.循环数组中相邻元素的最大差值:遍历(模拟)

力扣题目链接:https://leetcode.cn/problems/maximum-difference-between-adjacent-elements-in-a-circular-array/

给你一个 循环 数组 nums ,请你找出相邻元素之间的 最大 绝对差值。

注意:一个循环数组中,第一个元素和最后一个元素是相邻的。

 

示例 1:

输入:nums = [1,2,4]

输出:3

解释:

由于 nums 是循环的,nums[0] 和 nums[2] 是相邻的,它们之间的绝对差值是最大值 |4 - 1| = 3 。

示例 2:

输入:nums = [-5,-10,-5]

输出:5

解释:

相邻元素 nums[0] 和 nums[1] 之间的绝对差值为最大值 |-5 - (-10)| = 5 。

 

提示:

  • 2 <= nums.length <= 100
  • -100 <= nums[i] <= 100

解题方法:遍历

答案(ans)的默认值是 a b s ( n u m s [ 0 ] − n u m s [ − 1 ] ) abs(nums[0] - nums[-1]) abs(nums[0]nums[1]),接着使用 i i i 1 1 1 l e n ( n u m s ) − 1 len(nums) - 1 len(nums)1遍历,更新ans为 m a x ( a n s , a b s ( n u m s [ i ] − n u m s [ i − 1 ] ) ) max(ans, abs(nums[i] - nums[i - 1])) max(ans,abs(nums[i]nums[i1]))

  • 时间复杂度 O ( l e n ( n u m s ) ) O(len(nums)) O(len(nums))
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++
/** @Author: LetMeFly* @Date: 2025-06-12 22:49:40* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-06-12 22:52:31*/
class Solution {
public:int maxAdjacentDistance(vector<int>& nums) {int ans = abs(nums[0] - nums[nums.size() - 1]);for (int i = 1; i < nums.size(); i++) {ans = max(ans, abs(nums[i] - nums[i - 1]));}return ans;}
};
Python
'''
Author: LetMeFly
Date: 2025-06-12 22:49:40
LastEditors: LetMeFly.xyz
LastEditTime: 2025-06-12 22:53:39
'''
from typing import Listclass Solution:def maxAdjacentDistance(self, nums: List[int]) -> int:ans = abs(nums[0] - nums[-1])for i in range(1, len(nums)):ans = max(ans, abs(nums[i] - nums[i - 1]))return ans
Java
/** @Author: LetMeFly* @Date: 2025-06-12 22:49:40* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-06-12 23:01:46*/
class Solution {public int maxAdjacentDistance(int[] nums) {int ans = Math.abs(nums[0] - nums[nums.length - 1]);for (int i = 1; i < nums.length; i++) {ans = Math.max(ans, Math.abs(nums[i] - nums[i - 1]));}return ans;}
}
Go
/** @Author: LetMeFly* @Date: 2025-06-12 22:49:40* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-06-12 22:58:57* @Descriptions: AC,100.00%,93.33%*/
package main// abs3423 是因为golang没有内置abs函数
func abs3423(x int) int {if x < 0 {return -x}return x
}func maxAdjacentDistance(nums []int) int {ans := abs3423(nums[0] - nums[len(nums)-1])for i := 1; i < len(nums); i++ {ans = max(ans, abs3423(nums[i] - nums[i - 1]))}return ans
}

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

相关文章:

  • 基于GeoTools的道路相交多个点容差冗余计算实战
  • Unity性能优化-C#编码模块
  • 项目名称:基于计算机视觉的夜间目标检测系统
  • 本地内网搭建网址需要外部网络连接怎么办?无公网ip实现https/http站点外网访问
  • 公网 IP 地址SSL证书实现 HTTPS 访问完全指南
  • Ubuntu下使用PyTurboJPEG加速图像编解码
  • 新能源知识库(46)EMS与协控装置
  • Peiiieee的Linux笔记(1)
  • [OS_20] 设备和驱动程序 | GPIO | IPP | PCIe总线 | ioctl
  • Android S - 恢复部分应用安装
  • 使用Gitlab CI/CD结合docker容器实现自动化部署
  • javascript入门
  • RT-Thread Studio 配置使用详细教程
  • Spring Cloud Gateway 介绍
  • 金蝶K3 ERP 跨网段访问服务器卡顿问题排查和解决方法
  • 用户态与内核态是什么?有什么作用?两者在什么时候切换?为什么要切换?
  • word用endnote插入国标参考文献
  • 【C++】多重继承与虚继承
  • IDEA2025(2025.1.1)都更新了什么???
  • DevSecOps实践:用Terraform策略检查筑牢基础设施安全防线
  • 深圳做营销网站公司简介/有哪些可以免费推广的平台
  • 专业网站建设开发/百度有几种推广方式
  • 购物网站建设的需求/网络营销公司注册找哪家
  • 查收录网站/品牌推广策略与方式
  • 个人简历ppt模板免费下载/关键词优化工具
  • 广东网站制作多少钱/好的产品怎么推广语言