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

草原上优势牛种

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

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @return int整型
     */
    public int majority_cow(int[] nums) {
        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 作为参数。它的目标是找出数组中的众数(出现次数超过一半的元素)并返回。

代码中的主要逻辑如下:

  1. 使用两层循环遍历数组 nums 中的元素。
  2. 外层循环从第一个元素开始遍历到倒数第二个元素。
  3. 内层循环从外层循环的下一个元素开始遍历到数组末尾。
  4. 针对当前外层循环指定的元素,内层循环用来统计与之相等的元素个数 cnt,并将相等的元素设置为0。
  5. 在内层循环结束后,通过判断 cnt 是否大于等于数组长度的一半加1,如果是,则说明找到了众数,直接返回该数值。
  6. 如果循环结束仍未找到众数,则返回0表示没有众数。
全部评论

相关推荐

06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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