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

leetcode 3354. 使数组元素等于零 简单

给你一个整数数组 nums 。

开始时,选择一个满足 nums[curr] == 0 的起始位置 curr ,并选择一个移动 方向 :向左或者向右。

此后,你需要重复下面的过程:

  • 如果 curr 超过范围 [0, n - 1] ,过程结束。
  • 如果 nums[curr] == 0 ,沿当前方向继续移动:如果向右移,则 递增 curr ;如果向左移,则 递减 curr 。
  • 如果 nums[curr] > 0:
    • 将 nums[curr] 减 1 。
    • 反转 移动方向(向左变向右,反之亦然)。
    • 沿新方向移动一步。

如果在结束整个过程后,nums 中的所有元素都变为 0 ,则认为选出的初始位置和移动方向 有效 。

返回可能的有效选择方案数目。

示例 1:

输入:nums = [1,0,2,0,3]

输出:2

解释:

可能的有效选择方案如下:

  • 选择 curr = 3 并向左移动。
    • [1,0,2,0,3] -> [1,0,2,0,3] -> [1,0,1,0,3] -> [1,0,1,0,3] -> [1,0,1,0,2] -> [1,0,1,0,2] -> [1,0,0,0,2] -> [1,0,0,0,2] -> [1,0,0,0,1] -> [1,0,0,0,1] -> [1,0,0,0,1] -> [1,0,0,0,1] -> [0,0,0,0,1] -> [0,0,0,0,1] -> [0,0,0,0,1] -> [0,0,0,0,1] -> [0,0,0,0,0].
  • 选择 curr = 3 并向右移动。
    • [1,0,2,0,3] -> [1,0,2,0,3] -> [1,0,2,0,2] -> [1,0,2,0,2] -> [1,0,1,0,2] -> [1,0,1,0,2] -> [1,0,1,0,1] -> [1,0,1,0,1] -> [1,0,0,0,1] -> [1,0,0,0,1] -> [1,0,0,0,0] -> [1,0,0,0,0] -> [1,0,0,0,0] -> [1,0,0,0,0] -> [0,0,0,0,0].

示例 2:

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

输出:0

解释:

不存在有效的选择方案。

提示:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 100
  • 至少存在一个元素 i 满足 nums[i] == 0 。

分析:计算每一个位置的前缀和,后缀和。接着遍历数组 nums,如果 nums[i] == 0,判断它的前缀和与后缀和的差的绝对值是否小于等于 1,若小于等于,则说明当前位置满足题意,且绝对值等于 0 时,从该点想左向右出发均符合,答案 +2;若绝对值等于 1 则只有一个方向可以,答案 +1。遍历完,统计答案即可。

int countValidSelections(int* nums, int numsSize) {int pre[numsSize+5],last[numsSize+5];pre[0]=nums[0],last[numsSize-1]=nums[numsSize-1];for(int i=1;i<numsSize;++i){pre[i]=pre[i-1]+nums[i];last[numsSize-1-i]=last[numsSize-i]+nums[numsSize-1-i];}int len=numsSize,ans=0;for(int i=0;i<len;++i){if(nums[i]==0){int temp=abs(pre[i]-last[i]);if(temp<=1)ans+=2-temp;}}return ans;
}

http://www.dtcms.com/a/540455.html

相关文章:

  • 前端Word文件在线预览-文件预览修改背景色,动态修改在线预览颜色
  • 浙人医 × 电科金仓:异构多活架构驱动 LIS 系统国产化改造,构建集团化医院信创底座
  • 数据结构(12)
  • 深入解析U-Boot命令系统
  • 上海虹口网站制作互推商盟
  • 手机网站有用吗动画制作软件下载安装
  • 前端轮播图几种不同实现方式
  • SPA 路由与服务器 fallback 策略详解
  • 通过宝塔将vue、nodejs、MongoDB数据库部署到服务器
  • 从 serve -s 到 fallback:一次前端资源加载异常的排查记录
  • 如何通过检查MySQL与系统日志以找出服务器CPU占用源
  • 烟台优化网站公司济南君哲网站建设公司
  • 新能源汽车便携充电枪:市场爆发前夜的技术革命与产业重构
  • 给自己的网站做镜像网站wordpress安装主题 ftp
  • Django `select_related` 查询优化
  • Django 与 FastAPI 架构对比:学习路径指南
  • 【Axure教程】能展开查看附件的嵌套表格
  • 装修网站线怎样做中国制造网外贸平台下载
  • GPT结构剖析:从“词袋”到“思想”的魔法之旅
  • u盘安装系统提示“windows无法安装到这个磁盘,选中的磁盘具有gpt分区表”解决方法
  • WebRTC 集成 FFmpeg HEVC 硬件解码(hevc_cuvid)avcodec_open2错误码-558323010
  • 阿里国际AI翻译模型Marco霸榜WMT,英中赛道超越GPT-4.1与Gem
  • 三星单片机开发网站店铺装修一平方大概多少钱
  • 麒麟系统拔掉鼠标键盘再插上,鼠标键盘没反应
  • 做内贸只要有什么网络推广网站wordpress更新需要ftp
  • FastReport VCL发布2026.1版本:全面支持RAD Studio 13,PDF输出功能显著增强
  • SpringBoot3整合JetCache缓存
  • 云原生周刊:在 Kubernetes 上运行机器学习
  • nacos多个实例,如果让多个实例同时更新缓存 实现方案
  • Redis连接超时排查与优化指南