目录
题目概述
统计一个数字在排序数组中出现的次数。
示例
基础框架
class Solution { public int search(int[] nums, int target) { } }
解题思路
①for循环直接遍历即可!
②由于数组有序,用二分法,先查找第一个元素出现的位置,往后记数即可!
class Solution { public int search(int[] nums, int target) { int sum=0; if (nums.length == 0) { return 0; } for(int i=0;i<nums.length;i++){ if(nums[i]==target){ sum++; } } return sum; } }
优秀题解
//二分法 class Solution { public int search(int[] nums, int target) { int left=0; int right=nums.length-1; int count=0; while(left<right){ int mid=left+(right-left)/2; if(nums[mid]>=target){ right=mid; }else{ left=mid+1; } } while(left<nums.length&&nums[left++]==target){ count++; } return count; } }