Offer 53 - I. 在排序数组中查找数字 I(search)
1. python
class Solution:
def search(self, nums: List[int], target: int) -> int:
# cnt=0
# for v in nums:
# if target ==v:
# cnt+=1
# return cnt
def helper(target):
i,j = 0,len(nums)-1
while i<=j:
mid = (i+j)//2
if target<nums[mid]:
j=mid-1
else:
i=mid+1
return i
return helper(target)-helper(target-1)
2. Java
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int cnt = 0;
while (n!=0){
cnt+=1;
n=n&(n-1);
}
return cnt;
}
}
class Solution {
public int search(int[] nums, int target) {
return helper(nums,target)-helper(nums,target-1);
}
int helper(int [] nums,int target){
int i=0,j=nums.length-1;
while(i<=j){
int mid=(i+j)/2;
if(nums[mid]>target){
j=mid-1;
}else{
i=mid+1;
}
}
return i;
}
}