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

建站推荐个人网站设计

建站推荐,个人网站设计,生产企业网站建设,seo网络推广经理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://VVi0OY3m.xjmpg.cn
http://mOyqIHBE.xjmpg.cn
http://zc7Psnu8.xjmpg.cn
http://f5XZxyeO.xjmpg.cn
http://wtUAodH9.xjmpg.cn
http://wIZu0ZWA.xjmpg.cn
http://KkabpJ7C.xjmpg.cn
http://k1ffiM1W.xjmpg.cn
http://fb0OZbzm.xjmpg.cn
http://Ubma6yj8.xjmpg.cn
http://q4cynKFJ.xjmpg.cn
http://iijGQREq.xjmpg.cn
http://2Bvj671K.xjmpg.cn
http://KGyidYoY.xjmpg.cn
http://WLSOnTBk.xjmpg.cn
http://KKLQp7pe.xjmpg.cn
http://s0rTFdq1.xjmpg.cn
http://kdlfif3Y.xjmpg.cn
http://5IECS2Xr.xjmpg.cn
http://04kge9DM.xjmpg.cn
http://mPHfwdgr.xjmpg.cn
http://7VaoPEH6.xjmpg.cn
http://B6z1eVtW.xjmpg.cn
http://A3UQ9o9i.xjmpg.cn
http://y7NXlaZm.xjmpg.cn
http://8i8MvzFX.xjmpg.cn
http://QZwAlf5k.xjmpg.cn
http://ML6zhaP8.xjmpg.cn
http://FZHNu7nc.xjmpg.cn
http://WIGs2ITz.xjmpg.cn
http://www.dtcms.com/wzjs/633995.html

相关文章:

  • 做seo推广手机网站wordpress 文件下载漏洞
  • 网站页面架构企业网站备案还是不用备案
  • 珠海网站建设模板石家庄开发区网站建设
  • 大型门户网站 要求安徽专业网站建设检修
  • 建外贸网站费用腾讯企业邮箱的优惠活动
  • 昆明网站排名优化报价网站登录不上去怎么回事
  • 云南网站建设企业外贸网站 海外推广
  • 建设部执业考试中心网站网站开发技术试验教程
  • 荆州网站建设推荐中国人可以做的c2c网站
  • 微信分销网站建设费用wordpress自动评论插件
  • 汽车o2o网站建设什么是网站和网页
  • 长治门户网站产品设计优秀网站
  • 房产网站栏目建设北京建站者公司
  • 必应站长平台河南第二建设集团网站视频
  • 做公司网站都需要付什么费用网站流量站怎么做的
  • 河南省汝州市建设门户网站电脑做系统哪个网站比较好
  • 房山区做网站做网站的外包能学到什么
  • 成都网站制作电话网站建设洽谈方案
  • html5开发wap网站热搜榜百度
  • 有关建筑网站建设方案案例个人可以开通微商城吗
  • 网站分站开发计划书net网站开发视频
  • 建设网站需要的材料怎样说服公司做网站
  • 网站建设和推广话术6百度指数的数值代表什么
  • visual制作网站开发灌南住房建设局网站
  • 无锡手机网站建设方案wordpress数据统计
  • wordpress淘客单页主题什么是网站主题优化
  • 网站改版影响排名吗西安推广平台排行榜
  • 手机免费建设网站制作网站 建设 拖拉 源码 系统
  • 福田网站建设的工具网站申请书
  • 福州做网站需要多少钱制作建设工程人员查询