题解 | #草原上优势牛种# java

草原上优势牛种

https://www.nowcoder.com/practice/178705f48adc4e39ac8537a22e8941cd

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @return int整型
     */
    public int majority_cow (int[] nums) {
        // write code here
        int numsLen = nums.length;
        for (int i = 0; i < numsLen; i++) {
            if (0 == nums[i])
                continue;
            int cnt = 1;
            for (int j = i + 1; j < numsLen; j++) {
                if (nums[i] == nums[j]) {
                    nums[j] = 0;
                    cnt++;
                }
            }
            if (cnt >= numsLen / 2 + 1)
                return nums[i];
        }
        return 0;
    }
    }

这段代码使用的编程语言是Java

这道题目考察了数组的遍历和元素比较,以及如何统计数组中出现次数最多的元素。

该代码的文字解释如下:

  • 首先定义了一个名为majority_cow的函数,接受一个名为nums的整数型一维数组作为参数,还有一个整数类型的变量numsLen表示数组的长度,并返回一个整数类型的值。
  • 在函数内部,通过两层循环对数组进行遍历。外层循环从数组的第一个元素开始,内层循环从外层循环当前元素的下一个位置开始。
  • 在内层循环中,判断外层循环当前元素与内层循环当前元素是否相等。如果相等,则将内层循环当前元素置为0,并增加一个计数器cnt的值。
  • 如果计数器cnt的值大于等于数组长度的一半加1(即超过了数组长度的一半),则返回当前元素为结果。说明该元素出现的次数超过了其他元素的总和的一半。
  • 如果没有找到满足条件的元素,则返回0。
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:00
点赞 评论 收藏
分享
酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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