题解:
在global和local出现的情况相等时候,会发现,将local中出现逆序的情况反转,就能够得到一个升序排列的数组,
否则,如果swap两个逆序之后,不是升序的,会导致global的个数大于local的个数,如[1,2,0]中,2和0 交换后,不是升序
排列,除了2大于0,global的统计中1也大于0,因此glboal要比local的次数要多
bool isIdealPermutation(vector<int>& A) {
if(A.size()<=1) return true;
for(int i=1;i<A.size();i++)
{
if(A[i]==A[i-1]-1)
{
swap(A[i],A[i-1]);
}
else if((A[i]==A[i-1]+1)||(A[i]==A[i-1]+2))
{
continue;
} else
{
return false;
}
}
return true;
}
def isIdealPermutation(self,A):
"""
:type A: List[int]
:rtype: bool
"""
if len(A)<=1:
return True
for i in xrange(1,len(A),1):
if A[i]==A[i-1]-1:
tmp=A[i]
A[i]=A[i-1]
A[i-1]=A[i]
elif A[i]==A[i-1]+1 or A[i]==A[i-1]+2:
continue
else:
return False
return True