题目来源:
leetcode题目,网址:LCR 186. 文物朝代判断 - 力扣(LeetCode)
解题思路:
题意为将 0 修改成 1~13 中任意一个数字后,能否使所给数组排序为递增为 1 的数组。
排序后计算不连续数字之间的差值与 0 的个数大小即可。
解题代码:
class Solution {
public:
bool checkDynasty(vector<int>& places) {
sort(places.begin(),places.end());
int zero=0;
for(int i=0;i<places.size();i++){
if(places[i]==0){
zero++;
}else{
if(i==0 || places[i-1]==0){
continue;
}else{
cout<<zero<<endl;
if(places[i]==places[i-1]){
return false;
}
zero-=(places[i]-places[i-1]-1);
if(zero<0){
return false;
}
}
}
}
return true;
}
};
总结:
将题意错解了好几次......可以利用计数排序的思想解题。
无官方题解。