领扣LintCode算法问题答案-1099. 不下降数组
发布日期:2021-06-30 17:09:51 浏览次数:4 分类:技术文章

本文共 1266 字,大约阅读时间需要 4 分钟。

领扣LintCode算法问题答案-1099. 不下降数组

目录

1099. 不下降数组

描述

给定一个包含 n 个整数的数组,你的任务是检测在改变至多一个元素的情况下,它是否可以变成不下降的。

我们定义一个数组是不下降的,如果 array[i] <= array[i + 1] 对于每一个 i (1 <= i < n) 都成立。

  • n 属于 [1, 10,000].

样例 1:

输入: [4,2,3]输出: True解释: 你可以把第一个4修改为1从而得到一个不下降数组。

样例 2:

输入: [4,2,1]输出: False解释: 你无法得到一个不下降数组,在修改至多一个元素的情况下。

题解

public class Solution {
/** * @param nums: an array * @return: if it could become non-decreasing by modifying at most 1 element */ public boolean checkPossibility(int[] nums) {
// Write your code here if (nums.length <= 2) {
return true; } boolean changed = nums[0] > nums[1]; if (changed) {
nums[0] = nums[1]; } for (int i = 2; i < nums.length; i++) {
if (nums[i] < nums[i - 1]) {
if (!changed) {
if (nums[i] < nums[i - 2]) {
nums[i] = nums[i - 1]; } else {
nums[i - 1] = nums[i]; } changed = true; } else {
return false; } } } return true; }}

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。

欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

转载地址:https://le-yi.blog.csdn.net/article/details/108809479 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:领扣LintCode算法问题答案-1102. 图片平滑器
下一篇:领扣LintCode算法问题答案-1094. 二叉树中次小的结点

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年05月03日 03时22分36秒