LeetCode-775-全局倒置与局部倒置
创始人
2024-01-25 15:35:00
0

在这里插入图片描述

1、数学方法

根据题意,显然全局倒置的值大于等于局部倒置的值。因此我们不必求出具体的全局倒置的值和局部倒置的值,我们只需要证明全局倒置的值大于局部倒置的值即可。

因此我们可以从后往前进行查询,只要我们能够证明区间[i+1,n−1][i+1,n-1][i+1,n−1]中的最小值不仅小于nums[i]nums[i]nums[i],而且还小于nums[i−1]nums[i-1]nums[i−1]即可说明当前的全局倒置的值一定大于局部倒置的值。

class Solution {
public:bool isIdealPermutation(vector& nums) {int n = nums.size(), temp_min = nums[n - 1];for (int i = n - 3; i >= 0; i--) {if (nums[i] > temp_min) {return false;}temp_min = min(temp_min, nums[i + 1]);}return true;}
};

2、数学归纳$$

若全局倒置大于局部倒置说明存在一个j>i+1j>i+1j>i+1令nums[i]>nums[j]nums[i]>nums[j]nums[i]>nums[j],因此我们可以开始进行归纳:对于0而言,若全局倒置等于局部倒置则说明0前面最多不超过一个数字。1、若nums[0]=0nums[0]=0nums[0]=0,则我们需要进一步比较区间[1,n][1,n][1,n]是否满足条件;2、若nums[1]=0nums[1]=0nums[1]=0,则我们需要进一步比较区间[2,n][2,n][2,n]是否满足条件。以此类推,我们可以最终得到每个元素nums[i]nums[i]nums[i]都应满足∣nums[0]−0∣≤1\left | nums[0]-0\right | \le 1∣nums[0]−0∣≤1。

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

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...