665. Non-decreasing Array
665. Non-decreasing Array -数组问题
题目描述
给你一个长度为 n 的整数数组,请你判断在 最多 改变 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
解释: 你不能在只改变一个元素的情况下将其变为非递减数列。
提示:
1 <= n <= 10 ^ 4
- 10 ^ 5 <= nums[i] <= 10 ^ 5
题解思路
- 这道题依然可以用贪心的思路来求解
- 题目要求 在最多改变一个元素的情况下 判断数组能否变成非递减
- 那么我们就从前向后遍历 当改变次数超过一次,即说明不符合
- 那么应该按照什么原则修改数组呢?
- 由于我们从前向后遍历 我们应该尽量使得修改数组不影响后序数组状态 即能修改当前值 就不修改后面的值 让当前数组保持最优状态
- 出现非递减数组 总共可以概括为两种情况
- (132)nums[i]>nums[i+1] => nums[i-1]<nums[i+1] nums[i]=nums[i-1]
- (321)nums[i]>nums[i+1] => nums[i-1]>nums[i+1] nums[i+1]=nums[i]
- 程序最重要的部分就是对上述两种情况的处理
代码
class Solution {public boolean checkPossibility(int[] nums) {// 贪心问题// 遇到非递减数列时 尽量保持最优if(nums.length <=1){return true;}boolean flag = nums[0] <= nums[1] ? true: false;int len = nums.length;//遍历for(int i=1;i<len-1;i++){if(nums[i]>nums[i+1]){if(flag){if(nums[i+1]>=nums[i-1]){nums[i] = nums[i+1];}else{nums[i+1] = nums[i];}//机会用完了flag = false;}else{return false;}}}return true;}
}
665. Non-decreasing Array相关推荐
- LeetCode github集合,附CMU大神整理笔记
Github LeetCode集合 本人所有做过的题目都写在一个java项目中,同步到github中了,算是见证自己的进步.github目前同步的题目是2020-09-17日之后写的题.之前写过的题会 ...
- Array Sharpening CodeForces - 1291B(思维)
You're given an array a1,-,ana1,-,an of nn non-negative integers. Let's call it sharpened if and onl ...
- 数据结构实验8:内部排序
实验8 姓名: 学号: 班级: 8.1 实验目的 ...
- 【Python基础】科学计算库Scipy简易入门
0.导语 Scipy是一个用于数学.科学.工程领域的常用软件包,可以处理插值.积分.优化.图像处理.常微分方程数值解的求解.信号处理等问题.它用于有效计算Numpy矩阵,使Numpy和Scipy协同工 ...
- Codeforces 1291 Round #616 (Div. 2) B
B. Array Sharpening time limit per test1 second memory limit per test256 megabytes inputstandard inp ...
- 我和乘子交替方向法admm_找到最大和交替子序列
我和乘子交替方向法admm Problem statement: 问题陈述: Given a sequence of numbers, you have to find the maximum sum ...
- LDAP目录服务折腾之后的总结
前言 公司管理员工信息以及组织架构的后台系统要和Active Directory目录服务系统打通,后台系统使用PHP开发, 折腾了二十多天,终于上线了,期间碰到过各种疑难问题,不过总算在GOOGLE大 ...
- 【机器学习基础】Scipy(科学计算库) 手把手手把手
0.导语 Scipy是一个用于数学.科学.工程领域的常用软件包,可以处理插值.积分.优化.图像处理.常微分方程数值解的求解.信号处理等问题.它用于有效计算Numpy矩阵,使Numpy和Scipy协同工 ...
- 支付宝手机网站支付示例
config.php: $config['sms'] = ['accessKeyId'=>'LTAI4GCBpRwfrPALfeDNE9QT','accessKeySecret'=>'JR ...
- 网页内嵌入百度搜索的源代码-站长FAQ
免费搜索代码 知道免费代码 新闻免费代码 免费搜索代码 ·百度向网友开放免费下载百度搜索代码. ·只需将以下代码之一加入到您的网页中,您的网站即可获得同百度搜索引擎一样强大的搜索功能! HTML代码 ...
最新文章
- Java图形化:布局方式
- 图解|深入理解跳表及其在Redis中的应用
- 2021-06-29快速找出Excel表格中两列数据不同内容的3种方法!
- SAP SD 常用表
- Operating System-进程/线程内部通信-信号量和PV操作
- 写在开年:移植wolfssl4.3.0到w60x_sdk_3.04时的一点问题
- 统计学习方法第八章作业:分类问题AdaBoost算法、回归问题提升树算法 代码实现
- Hashtable 和 HashMap 的区别
- Java使用swagger时显示实体类注解问题
- CISCO PIX/ASA K8升级K9的方法与步骤
- keil4 新建stm32工程
- 含论文答辩PPT任务书源码等基于SSM框架演唱会网上订票系统
- 【编译原理】自下而上语法分析(C/C++源码+实验报告)
- 超市库存java管理系统_Java案例:超市库存管理系统
- win10禁用全角_win10输入法全角半角怎么切换 快捷键使用教程
- 在windows10上写自己的第一个python代码
- P6 Vue双向绑定 v-model
- 利用Ajax访问后台数据
- 基于CPT构建网络,熟悉各层协议
- file和folder的区别是什么?
热门文章
- JS学习之路系列总结五行阵(此文犹如武林之中的易筋经,是你驰骋IT界的武功心法,学会JS五大阵法就学会了JS,博主建议先学三才阵)...
- (初学笔记1)python读多波段遥感影像并存到三维数组中
- 日常维护SQL以及脚本
- 数据分析初试:“梧桐杯”中国移动大数据应用创新大赛 - 智慧城市赛道
- AWZ爱伪装常用问题汇总
- 非主流照片制作软件 Picasa有哪些主要的功能
- 拓嘉辰丰电商:关于拼多多推广计划有哪些问题
- Libre OJ #10064 黑暗城堡(spfa+STL求短路)
- 用Python做九宫格照片
- 不忘初心Windows11精简版