每日一题·1051.高度检查器

每日一题·1051.高度检查器,第1张

题目

学校打算为全体学生拍一张年度纪念照。根据要求,学生需要按照 非递减 的高度顺序排成一行。

排序后的高度情况用整数数组 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;
}

时间空间复杂度

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1499253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-25
下一篇 2022-06-25

发表评论

登录后才能评论

评论列表(0条)

保存