题解 | #牛的品种排序I#

牛的品种排序I

https://www.nowcoder.com/practice/e3864ed7689d460c9e2da77e1c866dce

  • 题目考察的知识点 : 双指针在数组中的简单运用
  • 题目解答方法的文字分析:
  1. 初始化两个指针 i 和 j 分别指向数组的第一个元素和最后一个元素。
  2. 将双指针向中间移动,当指针 i 所指向的元素为黑牛(值为0)时,则将 i 向右移动 1 位;当指针 j 所指向的元素为白牛(值为1)时,则将 j 向左移动 1 位。
  3. 如果指针 i 指向的位置上的元素为白牛,而指针 j 指向的位置上的元素为黑牛,则交换它们所在的牛群,并将指针 i 向右移动一位,指针 j 向左移动一位。
  4. 不断重复步骤 2 和 3,直到指针 i 和指针 j 相遇为止。
  • 本题解析所用的编程语言: Python
  • 完整且正确的编程代码

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param cows int整型一维数组
# @return int整型一维数组
#
class Solution:
    def sortCows(self, cows: List[int]) -> List[int]:
        n = len(cows)
        i, j = 0, n - 1

        while i <= j:
            if cows[i] == 0:
                i += 1
            elif cows[j] == 1:
                j -= 1
            else:
                cows[i], cows[j] = cows[j], cows[i]
                i += 1
                j -= 1

        return cows
牛客高频top202题解系列 文章被收录于专栏

记录刷牛客高频202题的解法思路

全部评论

相关推荐

05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务