统计一个数字在排序数组中出现的次数。
示例输入: nums = [5,7,7,8,8,10], target = 8
输出: 2
输入: nums = [5,7,7,8,8,10], target = 6
输出: 0
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
暴力遍历。
Java实现class Solution { public int search(int[] nums, int target) { int n = nums.length; int flag = 0; for (int i = 0; i < n; i++){ if (nums[i] == target) flag++; } return flag; } }方法2
二分查找。
Java实现class Solution { public int search(int[] nums, int target) { int n = nums.length; int l = 0, r = n - 1; int flag1 = 0, flag2 = 0; if (n == 0) return 0; //先找左边界 while (l < r){ int mid = l + r >> 1; if (nums[mid] >= target) r = mid; else l = mid + 1; } if (nums[l] != target) return 0; else{ flag1 = l; l = 0; r = n - 1; //找右边界 while (l < r){ int mid = l + r + 1 >> 1; if (nums[mid] <= target) l = mid; else r = mid - 1; } flag2 = l; } return flag2 - flag1 + 1; } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)