本文共 2081 字,大约阅读时间需要 6 分钟。
public class Deom { public static void main(String[] args) { int[] nums = {2, 3, 5, 4, 3, 2, 6, 7}; Deom sb = new Deom(); System.out.println(sb.findDuplicate(nums)); System.out.println(sb.findMajority(nums)); } private int findDuplicate(int[] nums) { int[] arr = new int[nums.length]; for (int i = 0; i < nums.length; i++) { arr[i] = nums[i]; } for (int j = 0; j < nums.length; j++) { for (int k = 0; k < arr.length; k++) { if (nums[j] == arr[k]) { return nums[j]; } } } return -1; } private int findMajority(int[] arr) { if (arr == null || arr.length <= 0) { return -1; } int left = 0; int right = arr.length - 1; while (left <= right) { int mid = (right - left) / 2 + left; int count = countNumber(arr, left, mid); if (left == right) { if (count > 1) { return left; } else { break; } } if (count > (mid - left + 1)) { right = mid - 1; } else { left = mid + 1; } } return -1; } private int countNumber(int[] arr, int left, int right) { if (arr == null) { return 0; } int count = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] >= left && arr[i] <= right) { count++; } } return count; }}
优化说明:
代码功能描述:
代码示例:
int[] nums = {2, 3, 5, 4, 3, 2, 6, 7};Deom sb = new Deom();System.out.println(sb.findDuplicate(nums)); // 输出: 2 或 3System.out.println(sb.findMajority(nums)); // 输出: 3 或 2
代码保持了原有的功能,同时修复了语法错误,优化了代码结构和可读性。
转载地址:http://ehoe.baihongyu.com/