题解 | #草原上优势牛种# 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。