intMinMoveStone(int n, vector<int>&num){if(n <=0)return-1;//边界值判定
vector<int> oderedNum = num;sort(oderedNum.begin(), oderedNum.end());int maxStrLen =-1;//设置初始值int curr =1;//如果未找到相应真升序子字符串,则为任何某字符本身auto itPre = oderedNum.begin();auto it = itPre +1;int m =-1;int k =-1;while(it != oderedNum.end()){for(int i =0; i < n;++i){if(num[i]==*itPre)
m = i;if(num[i]==*it)
k = i;if(m !=-1&& k !=-1)break;}if(m < k)//判断是否满足真升序字符串条件++curr;if(curr > maxStrLen)
maxStrLen = curr;
m =-1;
k =-1;++itPre;++it;}return n - maxStrLen;//返回剩下的字符个数}