首页 > 其他分享 >LeetCode 665. 非递减数列

LeetCode 665. 非递减数列

时间:2022-11-13 00:01:28浏览次数:50  
标签:cnt return 数列 nums int 665 true LeetCode

class Solution {
public:
    bool checkPossibility(vector<int>& nums) {
        int n = nums.size();
        for(int i=0;i<n-1;i++){
            int x = nums[i],y = nums[i+1];
            if(x>y){
                //后面向前面看齐
                nums[i]=y;
                if(is_sorted(nums.begin(),nums.end())){
                    return true;
                }
                //前面向后面看齐
                nums[i] = x;
                nums[i+1]=x;
                return is_sorted(nums.begin(),nums.end());
            }
        }
        return true;
    }
};

简化版

class Solution {
public:
    bool checkPossibility(vector<int>& nums) {
        int n = nums.size();
        int cnt = 0;
        for (int i = 0; i < n - 1; i++) {
            int x = nums[i], y = nums[i + 1];
            if (x > y) {
                cnt++;
                if (cnt > 1) return false;
                //如果下面成立那么就应该y看向
                if (i > 0 && nums[i - 1] > y) {
                    nums[i + 1] = x;
                }
            }
        }
        return true;
    }
};

标签:cnt,return,数列,nums,int,665,true,LeetCode
From: https://www.cnblogs.com/poteitoutou/p/16885165.html

相关文章

  • LeetCode刷题记录.Day13
    四数之和18.四数之和-力扣(LeetCode)classSolution{public:vector<vector<int>>fourSum(vector<int>&nums,inttarget){vector<vector<int>>res......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:最小栈
    题目:设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。实现MinStack类:MinStack()初始化堆栈对象。voidpush(intval)将元素val推入堆栈。voidpop......
  • leetcode-888-easy
    FairCandySwapAliceandBobhaveadifferenttotalnumberofcandies.YouaregiventwointegerarraysaliceSizesandbobSizeswherealiceSizes[i]isthenum......
  • leetcode-1486-easy
    XOROperationinanArrayYouaregivenanintegernandanintegerstart.Defineanarraynumswherenums[i]=start+2*i(0-indexed)andn==nums.length......
  • Leetcode第790题:多米诺和托米诺平铺(Domino and tromino tiling)
    解题思路采用动态规划思路。参考题解。核心代码如下:constlonglongmod=1e9+7;classSolution{public:intnumTilings(intn){vector<vector<lo......
  • leetcode-2047-easy
    NumberofValidWordsinaSentenceAsentenceconsistsoflowercaseletters('a'to'z'),digits('0'to'9'),hyphens('-'),punctuationmarks('!','.',and......
  • LeetCode Hot1--两数之和
    两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输......
  • [回溯算法]leetcode216. 组合总和 III(c实现)
    题目找出所有相加之和为 n的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次 返回所有可能的有效组合的列表。该列表不能包含相同的组合两次......
  • 最大公约数 C/C++ leetcode , 辗转相除,更相减损
    #include <iostream>using namespace std;// 辗转相除法求最大公约数,用大的模小的,然后用除数模余数,该接口在新版的C++17的numeric 包中也有int gcd1(int a ,......
  • LeetCode 406.根据身高重建队列
    首先根据身高从小到大排序如果身高相等那么根据第二个值降序排序classSolution{public:vector<vector<int>>reconstructQueue(vector<vector<int>>&people){......