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

day45——非递减数列(LeetCode-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
解释: 你不能在只改变一个元素的情况下将其变为非递减数列。

提示:

  • n == nums.length
  • 1 <= n <= 104
  • -105 <= nums[i] <= 105

解决方案:

1、采用计数器判断次数,超过次数,即返回值

2、贪心策略:三个一起判断,进而统计次数

函数源码:

class Solution {
public:bool checkPossibility(vector<int>& nums) {int sum=0;for(int i=1;i<nums.size();i++){if(nums[i-1]>nums[i]){sum++;if(sum>=2) return false;if(i-2>=0 && nums[i-2]>nums[i]){nums[i]=nums[i-1];                }else nums[i-1]=nums[i];}}return sum<=1;}
};

相关文章:

  • Spring Boot启动流程深度解析:从main()到应用就绪的完整旅程
  • 设计模式之工厂方法模式
  • 获取印度股票市场列表、查询IPO信息以及通过WebSocket实时接收数据
  • 青少年编程与数学 02-016 Python数据结构与算法 28课题、图像处理算法
  • 人像面部关键点检测
  • 【路由交换方向IE认证】BGP选路原则之AS-Path属性
  • 基于autoware1.14的实车部署激光雷达循迹,从建图、定位、录制轨迹巡航点、到实车运行。
  • MySQL+Redis实战教程:从Docker安装部署到自动化备份与数据恢复20250418
  • MCP协议量子加密实践:基于QKD的下一代安全通信(2025深度解析版)
  • 服务器架构:SMP、NUMA、MPP及Docker优化指南
  • Oracle 19c新特性:OCP认证考试与职业跃迁的关键?
  • 日本公司如何实现B2B商城订货系统的自动化和个性化?
  • 珈和科技:无人机技术赋能智慧农业,精准施肥与病虫害监控全面升级
  • STM32F103_HAL库+寄存器学习笔记18 - CAN接收溢出中断
  • win10 应用市场 开发
  • 【java 13天进阶Day04】常用API、正则表达式,泛型、Collection集合API
  • P10416 [蓝桥杯 2023 国 A] XYZ
  • 关于yarn和hadoop
  • STM32 HAL库 Freertos队列使用解析
  • 深入理解红黑树:原理、实现与应用
  • 大家聊中国式现代化|彭羽:为国家试制度探新路,推进高水平对外开放
  • 推进“三个免于”,上海试点首发进口化妆品快速通关模式
  • 上金所:调整黄金、白银延期部分合约保证金水平和涨跌停板
  • 马上评丨冒名顶替上中专,为何一瞒就是30多年?
  • 欧盟就中欧有关世贸争端案件提起上诉仲裁,商务部回应
  • 美学术界发起集体抗议,百余高校联署声明抵制政府干预