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
作为参数。它的目标是找出数组中的众数(出现次数超过一半的元素)并返回。
代码中的主要逻辑如下:
- 使用两层循环遍历数组 nums 中的元素。
- 外层循环从第一个元素开始遍历到倒数第二个元素。
- 内层循环从外层循环的下一个元素开始遍历到数组末尾。
- 针对当前外层循环指定的元素,内层循环用来统计与之相等的元素个数 cnt,并将相等的元素设置为0。
- 在内层循环结束后,通过判断 cnt 是否大于等于数组长度的一半加1,如果是,则说明找到了众数,直接返回该数值。
- 如果循环结束仍未找到众数,则返回0表示没有众数。