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

665. 非递减数列-先改后验法

665. 非递减数列

给你一个长度为 n 的整数数组 nums ,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。

我们是这样定义一个非递减数列的: 对于数组中任意的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。

示例 1:

输入: nums = [4,2,3]
输出: true
解释: 你可以通过把第一个 4 变成 1 来使得它成为一个非递减数列。

示例 2:

输入: nums = [4,2,1]
输出: false
解释: 你不能在只改变一个元素的情况下将其变为非递减数列。

这题直接使用先改后验法就可以了,这种问题,基本都是这么做的,一次修改,检索是否符合条件。
解题代码如下:

bool checkPossibility(int* nums, int numsSize){for(int i=0;i<numsSize-1;i++){if(i>=1){if(nums[i]>nums[i+1]&&nums[i+1]>=nums[i-1]){nums[i]=nums[i+1];break;}if(nums[i]>nums[i+1]&&nums[i+1]<nums[i-1]){nums[i+1]=nums[i];break;}}if(i==0){if(nums[i]>nums[i+1]){nums[i]=nums[i+1];break;}}}for(int i=0;i<numsSize-1;i++){printf("%d ",nums[i]);}for(int i=0;i<numsSize-1;i++){if(nums[i]>nums[i+1]){return false;}}return true;}
http://www.lryc.cn/news/165134.html

相关文章:

  • 调教 文心一言 生成 AI绘画 提示词(Midjourney)
  • 半导体制造工艺(一)光刻
  • 【海思SS626 | 开发环境】VMware17安装Ubuntu 18.04.6
  • Vue知识系列(3)每天10个小知识点
  • Java基础入门·多线程·线程池ThreadPool篇
  • Trinitycore学习之在vscode查看远端服务器上源码配置
  • 583. 两个字符串的删除操作 -- 动规
  • SOME/IP
  • [2023.09.12]: Yew应用开发的第一个hook--use_state
  • 使用Langchain+GPT+向量数据库chromadb 来创建文档对话机器人
  • Spring Cloud(Finchley版本)系列教程(一) 服务注册与发现(eureka)
  • 【大数据】美团 DB 数据同步到数据仓库的架构与实践
  • 分类预测 | MATLAB实现WOA-CNN-BiGRU鲸鱼算法优化卷积双向门控循环单元数据分类预测
  • mac使用squidMan设置代理服务器
  • 大数据Flink(七十八):SQL 的水印操作(Watermark)
  • 【Linux】Qt Remote之Remote开发环境搭建填坑小记
  • ATFX汇市:离岸人民币大幅升值,昨日盘中跌破7.3关口
  • Spring Boot 配置 Knife4j
  • Java项目中遇到uv坐标如何转换成经纬度坐标
  • std : : unordered_map 、 std : : unordered_set
  • Python解释器和Pycharm的傻瓜式安装部署
  • 14 Python使用网络
  • AI ChatGPT 各大开放平台一览 大模型 Prompt
  • 全球汽车安全气囊芯片总体规模分析
  • USB适配器应用芯片 国产GP232RL软硬件兼容替代FT232RL DPU02直接替代CP2102
  • 卫星物联网生态建设全面加速,如何抓住机遇?
  • SAP GUI 8.0 SMARTFORMS 使用SCR LEGACY TEXT EDITOR GUI8.00 禁用MSWORD
  • 【SpringMVC】JSR303与拦截器的使用
  • Qt案例-编译阿里云OSS对象存储C++ SDK源码,并进行简单下载,上传数据,显示进度等相关功能
  • JAVA异常输出到控制台