学校打算为全体学生拍一张年度纪念照。根据要求,学生需要按照 非递减 的高度顺序排成一行。
排序后的高度情况用整数数组 expected 表示,其中 expected[i] 是预计排在这一行中第 i 位的学生的高度(下标从 0 开始)。
给你一个整数数组 heights ,表示 当前学生站位 的高度情况。heights[i] 是这一行中第 i 位学生的高度(下标从 0 开始)。
返回满足 heights[i] != expected[i] 的 下标数量 。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/height-checker
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
定义一个新的数组保存原来的数据
然后快排原来的数组
比较新的数组和原来的数组
代码int cmp(const void * a ,const void * b)
{
return *(int *)a-*(int *)b;
}
/*
*heightChecker:比较数组
int* heights:数组
int heightsSize:数组长度
*/
int heightChecker(int* heights, int heightsSize){
int ans[heightsSize];
for(int i = 0; i < heightsSize; i++)
{
ans[i] = heights[i];
}
qsort(heights,heightsSize,sizeof(heights[0]),cmp);
int sum = 0;
for(int i = 0; i < heightsSize; i++)
{
if(ans[i] != heights[i])
++sum;
}
return sum;
}
时间空间复杂度
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)