剑指 Offer 53 - I. 在排序数组中查找数字
法一:循环法
class Solution {public int search(int[] nums, int target) {int res = 0;for(int i = 0;i<nums.length;i++){if(nums[i]==target){res++;}}return res;}}
法二:二分法
因为是有序的,所以通过俩侧找边界来解决。
class Solution {public int search(int[] nums, int target) {return helper(nums, target) - helper(nums, target - 1);}int helper(int[] nums, int tar) {int i = 0, j = nums.length - 1;while(i <= j) {int m = (i + j) / 2;if(nums[m] <= tar) i = m + 1;else j = m - 1;}return i;}
