您的位置:首页 > 健康 > 养生 > 开发公司总工年终总结_河南省人民政府工作规则_营业推广的方式有哪些_建站平台哪家好

开发公司总工年终总结_河南省人民政府工作规则_营业推广的方式有哪些_建站平台哪家好

2025/3/14 13:30:04 来源:https://blog.csdn.net/m0_67598823/article/details/146188946  浏览:    关键词:开发公司总工年终总结_河南省人民政府工作规则_营业推广的方式有哪些_建站平台哪家好
开发公司总工年终总结_河南省人民政府工作规则_营业推广的方式有哪些_建站平台哪家好

题目描述:

给你一个下标从 0 开始的整数数组 nums 。对于每个下标 i1 <= i <= nums.length - 2),nums[i] 的 美丽值 等于:

  • 2,对于所有 0 <= j < i 且 i < k <= nums.length - 1 ,满足 nums[j] < nums[i] < nums[k]
  • 1,如果满足 nums[i - 1] < nums[i] < nums[i + 1] ,且不满足前面的条件
  • 0,如果上述条件全部不满足

返回符合 1 <= i <= nums.length - 2 的所有 nums[i] 的 美丽值的总和 。

代码思路:

  1. 前缀最大值和后缀最小值
    • pre1 是一个数组,保存了从左到右遍历时 nums 的前缀最大值。即,对于每个位置 ipre1[i] 表示从 nums[0] 到 nums[i] 的最大值。
    • pre2 是一个数组,保存了从右到左遍历时 nums 的后缀最小值。即,对于每个位置 ipre2[i] 表示从 nums[i] 到 nums[n-1] 的最小值(注意 pre2 是通过反转 nums 计算然后再反转回来的)。
  2. 初始化
    • 使用 accumulate 函数来计算 pre1 和 pre2
    • ans 初始化为 0,用于累加所有符合条件的 nums[i] 的美丽值。
  3. 遍历数组
    • 遍历数组 nums 的每个元素(从下标 1 到 len(nums) - 2),计算每个 nums[i] 的美丽值。
    • 对于每个 i
      • 如果 nums[i] 满足条件 pre1[i - 1] < nums[i] < pre2[i + 1],即比左侧所有元素都大且比右侧所有元素都小,则美丽值为 2,累加到 ans
      • 否则如果 nums[i] 满足条件 nums[i - 1] < nums[i] < nums[i + 1],即仅比相邻的两个元素大,则美丽值为 1,累加到 ans
  4. 返回结果
    • 遍历完成后,ans 就是符合条件的所有 nums[i] 的美丽值总和,返回 ans

代码实现: 

class Solution:def sumOfBeauties(self, nums: List[int]) -> int:pre1, pre2, ans = list(accumulate(nums, func = max)), list(accumulate(nums[::-1], func = min))[::-1], 0for i in range(1, len(nums) - 1):if   pre1[i - 1] < nums[i] < pre2[i + 1]: ans += 2elif nums[i - 1] < nums[i] < nums[i + 1]: ans += 1return ans

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com