leetcode 非遞減序列

題目要求

給定一個序列,改動其中的數(shù)字,能夠構成非遞減序列所更改次數(shù)少于2的函數(shù)返回真,否則返回假。

思路

首先考慮數(shù)組數(shù)量少于等于2的時候一定可以構成非遞減序列
當大于等于3時需要,遇到當前的值大于后面的一個值說明這時候需要進行修改,修改有兩種情況,將當前的值設置成前面的值,或者是設置成后面的值。
1.設置成前面的值
后面的值大于前面值的時候,設置當前的值為前面的值可以保證非遞減序列。
2.設置成后面的值
后面的值小于前面值的時候,設置當前的值為后面的值可以保證非遞減序列。

class Solution {
public:
    bool checkPossibility(vector<int>& nums) {
        int sum = 0;
        if(nums.size()<=2) return true;
        
        if(nums[0]>nums[1])
        {
            sum++;
            nums[0] = nums[1];
        }
        for(int i = 1;i<nums.size()-1;i++)
        {
            // 如果大了必然得改
            if(nums[i]>nums[i+1])
            {
                if(nums[i+1]>nums[i-1])
                {
                    nums[i] = nums[i-1];
                }
                if(nums[i+1]<nums[i-1])
                {
                    nums[i+1] = nums[i];
                }
                sum++;
            }
        }
        
        if(sum>1)
        {
            return false;
        }
        return true;
    }
};
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,721評論 0 5
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,985評論 0 9
  • 1、窗體 1、常用屬性 (1)Name屬性:用來獲取或設置窗體的名稱,在應用程序中可通過Name屬性來引用窗體。 ...
    Moment__格調閱讀 4,794評論 0 11
  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的。 ??事件,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,701評論 1 11
  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網易云信 SDK 為 Web 應用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 14,318評論 0 15

友情鏈接更多精彩內容