LeetCode 1051. 高度检查器

1051. 高度检查器

 

【直接排序】

class Solution {
    public int heightChecker(int[] heights) {
        int[] e = heights.clone();
        Arrays.sort(e);
        int ans = 0;
        for(int i = 0, n = e.length; i < n; i++){
            if(heights[i] != e[i]) ans++;
        }
        return ans;
    }
}

【自己写快排】

class Solution {

    // 快排. 3:54 8

    int[] h;

    public void quickSort(int left, int right){
        if(left >= right) return;
        int flag = h[left], l = left, r = right;
        while(left < right){
            while(right > left && h[right] > flag) right--;
            h[left] = h[right];
            while(left < right && h[left] <= flag) left++;
            h[right] = h[left];
        }
        h[left] = flag;
        quickSort(l, left - 1);
        quickSort(left + 1, r);
    }

    public int heightChecker(int[] heights) {
        h = heights.clone();
        quickSort(0, h.length - 1);
        int ans = 0;
        for(int i = 0, n = h.length; i < n; i++) {
            if(heights[i] != h[i]) ans++;
        }
        return ans;
    }
}

【计数排序】因为这个题的范围只有100,所以可以把出现的数字个数记录下来,从小打到排序

class Solution {

    // 计数排序 4:04

    public int heightChecker(int[] heights) {
        int[] cnt = new int[101];
        for(var x: heights) cnt[x]++;
        int j = 0, ans = 0, n = heights.length;
        for(var i = 0; i < n;){
            while(cnt[j] == 0) j++;
            for(var k = 0; k < cnt[j]; k++){
                // System.out.println(j + " " + heights[i]);
                if(heights[i] != j) ans++;
                i++;
            }
            j++;
        }
        return ans;
    }
}

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C 程序编辑自动修改是一种软件工具,它可以自动化地修改 C 语言程序并进行相应的调整。它可以用于改变程序中的各种配置、函数、变量等,以更好地适应不同的需求或者区别制定服务的应用程序。它可以避免人工干预,提高程序的可靠性和效率。 C 程序编辑自动修改的功能非常强大。它通过检测程序的语法和结构,更加自然地识别代码的元素。它可以处理大量的代码,允许用户进行快速的操作,并可以在时间和资源方面做到高度效率。它还可以在不改变程序代码数量的情况下,对程序的效率进行改进。 该工具在开发过程中有很多优势和应用。一方面,它可以帮助程序员快速学习 C 语言、编写程序和进行代码调试。另一方面,当进行大规模应用开发部署时,该工具会变得尤为有用。这是因为它可以帮助在简化程序员的工作,提高代码的质量和可靠性的同时,大幅缩短开发时间。最终,提高开发效率和确保代码质量,可以为构建出更好、更完善的软件应用程序提供稳定的基础。 总之,C 程序编辑自动修改是一款非常有用的工具。它可以帮助程序员更轻松地完成任务,同时提供更高质量的代码。当建立和开发新的 C 语言应用时,开发团队可以轻松地使用该工具并最终构建出高效可靠、稳定性符合企业需求的代码。 ### 回答2: C程序编辑自动修改是一种工具,它可以帮助程序员在编辑C语言代码时提供更高效、更快速的编程方式。通过使用这种工具,程序员可以更好地管理他们的代码,并且可以在保持高度精度和一致性的同时提高代码质量和效率。 这种工具可以提供许多有用的功能,如代码自动补全、语法高亮、语法检查、格式化等。这可以让程序员更容易地编写代码,减少输入错误,并帮助他们遵循最佳代码规范。此外,程序编辑自动修改还可以为项目提供重构和重命名支持,以确保代码的未来可维护性。 C程序编辑自动修改还可以为程序员提供代码跨平台兼容性,这意味着程序员可以在不同的操作系统和编译上更轻松地使用他们的代码。这是因为C程序编辑自动修改可以自动检测到代码的兼容性,并自动进行必要的更改和修复。 总的来说,C程序编辑自动修改是一种非常有用的工具,它可以让程序员更快速、更高效地编写和管理他们的代码,并提供更高的代码质量和可维护性。它是一个极其有价值和必要的工具,无论是初学者还是经验丰富的专业程序员,都可以从中受益。 ### 回答3: C程序编辑自动修改是一种工具,可以自动地修改C语言程序的代码。它可以读取C程序的源代码,并检测其中的语法错误和逻辑错误。然后,它可以提供修改建议,以修正这些错误,并自动修改程序的源代码。 C程序编辑自动修改可以提高程序的可读性和可维护性。它可以转换变量名、函数名、注释、缩进等程序元素,使得程序更加易于理解和修改。此外,它还可以自动化某些重复性的任务,例如格式化代码、添加调试语句和错误处理等。 C程序编辑自动修改的应用范围广泛。它可以用于优化程序性能、增强程序可靠性、简化程序代码等。特别是在大型工程项目中,该工具可以帮助工程师更快更准确地完成任务,从而提高生产效率和软件质量。 尽管C程序编辑自动修改拥有许多优点,但它并不能完全替代人工修正程序代码。在使用该工具时,程序员需要了解其局限性,并进行适当的人工审核和验证工作。这样才能确保程序代码的正确性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值