暴力yyds
public class Solution {
public int GetNumberOfK(int [] array , int k) {
int flag=0;
for (int num : array){
if (num==k) flag++;
}
return flag;
}
}
方法2:java
二分法芜湖。就是要注意一些值设的初始值~
关于mid=(low+high)/2与mid=low+(high-low)/2的区别:
mid=low+(high-low)/2 可以防止溢出喵
public class Solution {
public int GetNumberOfK(int [] array , int k) {
int flag1=-1,flag2=-1;
int low=0,high=array.length-1;
int count=0;
while(low<=high){
int mid=low+(high-low)/2;
if (array[mid]k) high=mid-1;
else{
//mid算一个就行。
flag1=mid-1;
flag2=mid;
//向前扩展
while(flag1>=0 && array[flag1]==k){
flag1--;
count++;
}
//向后扩展
while(flag2
方法2:python
class Solution:
def GetNumberOfK(self, data, k):
# write code here
low,high=0,len(data)-1
cnt=0
while(low<=high):
mid=low+int((high-low)/2)
if data[mid]>k:
high=mid-1
elif data[mid]=0 and data[left]==k):
cnt+=1
left-=1
#向后
while(right



