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

网站商城建设套餐谷歌排名查询

网站商城建设套餐,谷歌排名查询,制作软件需要什么技术,怎么用java做网站2012. 数组美丽值求和 - 力扣&#xff08;LeetCode&#xff09; 题目 给你一个下标从 0 开始的整数数组 nums 。对于每个下标 i&#xff08;1 < i < nums.length - 2&#xff09;&#xff0c;nums[i] 的 美丽值 等于&#xff1a; 2&#xff0c;对于所有 0 < j <…

2012. 数组美丽值求和 - 力扣(LeetCode)

题目

给你一个下标从 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:

**输入:**nums = [1,2,3]
**输出:**2
**解释:**对于每个符合范围 1 <= i <= 1 的下标 i :

  • nums[1] 的美丽值等于 2
思路

等于2 就是比左边的都大,比右边的都小
需要两个辅助数组,分别记录
从左到右的最大。
从右边到左的最小。

解法一

java

public static int sumOfBeauties(int[] nums) {  if (nums.length < 2) {  return 0;  }  int length = nums.length;  int[] prefixMax = new int[length];  int[] subfixMin = new int[length];  prefixMax[0] = nums[0];  for (int i = nums.length - 1; i >= 0; i--) {  if (i == nums.length - 1) {  subfixMin[i] = nums[i];  } else {  subfixMin[i] = Math.min(subfixMin[i + 1], nums[i]);  }  }  int count = 0;  for (int i = 1; i < nums.length - 1; i++) {  prefixMax[i] = Math.max(prefixMax[i - 1], nums[i]);  if (nums[i] > prefixMax[i - 1] && nums[i] < subfixMin[i + 1]) {  count += 2;  } else if (nums[i] > nums[i - 1] && nums[i] < nums[i + 1]) {  count += 1;  }  }  return count;  
}

python

class Solution:  def sumOfBeauties(self, nums: List[int]) -> int:  n = len(nums)  suffix_min = [0] * n  prefix_max = [0] * n  suffix_min[n - 1] = nums[n - 1]  for i in range(n - 2, 1, -1):  suffix_min[i] = min(suffix_min[i + 1], nums[i])  count = 0  prefix_max[0] = nums[0]  for i in range(1, n - 1, 1):  if prefix_max[i - 1] < nums[i] < suffix_min[i + 1]:  count += 2  elif nums[i - 1] < nums[i] < nums[i + 1]:  count += 1  prefix_max[i] = max(prefix_max[i - 1], nums[i])  return count  a = Solution().sumOfBeauties([1, 2, 3])  
print(a)
解法二 优化数组的空间

python

class Solution2:  def sumOfBeauties(self, nums: List[int]) -> int:  n = len(nums)  suffix_min = [0] * n  suffix_min[n - 1] = nums[n - 1]  for i in range(n - 2, 1, -1):  suffix_min[i] = min(suffix_min[i + 1], nums[i])  count = 0  prefix_max = nums[0]  for i in range(1, n - 1, 1):  if prefix_max < nums[i] < suffix_min[i + 1]:  count += 2  elif nums[i - 1] < nums[i] < nums[i + 1]:  count += 1  prefix_max = max(prefix_max, nums[i])  return count  a = Solution2().sumOfBeauties([1, 2, 3])  
print(a)
总结

考点suffix/prefix arrays

http://www.dtcms.com/wzjs/137507.html

相关文章:

  • 南昌做网站建设公司互联网营销师培训教程
  • 做优化网站是什么意思百度关键词搜索量查询
  • 出台网站集约化建设通知app推广方式有哪些
  • 软件开发前景2021seo优化报价公司
  • 网站建设衡水网络营销策略包括哪几大策略
  • 新余网站设计搜索引擎在线
  • 在越南做网站需要什么网络营销常用工具
  • wordpress 密码忘记武汉百度快照优化排名
  • 怎么查询自己房产信息百度免费优化
  • 如何做软件类型的网站企业网络营销推广
  • seo分析seo诊断深圳网络优化推广公司
  • 做网站合同封面成都做网络推广的公司有哪些
  • 青岛做网站免费推广网站2023
  • 哪个网站可以做会计试题广州市最新消息
  • 网站别人做的我自己怎么续费b站大全永不收费2023入口在哪
  • 网站建设 免费重庆发布的最新消息今天
  • 用php做网站需要什么软件山西seo推广
  • 网站建设发展方向及前景展望代运营网店公司
  • 珠海公司网站设计短信广告投放软件
  • wordpress 评论 html南昌seo网站管理
  • php网站后台模板下载不了专业seo推广
  • 费县网站建设大数据查询平台
  • 保险网站建设平台网络推广是什么工作
  • 局域网网站建设需要什么条件企业品牌推广方案
  • 素材网址宁波好的seo外包公司
  • 郑州网站制作多少钱新手学seo
  • 青岛市住房和城乡建设局官方网站深圳市seo上词贵不贵
  • 重生做二次元网站关键词优化公司网站
  • 汕头市交通建设网站重庆森林粤语
  • 县政府网站建设情况总结免费推广网站大全下载