2021.12.28
安卓学习的进度慢了,,得加快点。 今天主要是注意点吧。 栈实现队列注意<=加进去。 重复数字的长度。 一个求得是第一个>目标数字的位置 一个求的是第一个<目标数字的位置 二者直接相减即可。
public int GetNumberOfK(int [] array , int k) {
int a=binsearch(array,k,true);
int b=binsearch(array,k,false);
return b-a;
}
public int binsearch(int[] array,int k,boolean b){
int l=0,r=array.length-1;
while (l<=r){
int mid=(l+r)/2;
if(array[mid]>k||(array[mid]>=k&&b)){
r=mid-1;
}else {
l=mid+1;
}
}
return l;
}
}
判断入栈出栈序列主要是用一个栈来模拟 1.num1[i]!=num2[j] 入栈,i++ 2.num1[i]==num2[j] i++,j++. 之后判断栈顶和出栈序列相同出栈即可。其余判断不用做(小心越界,在循环时判断栈是否为空)。 3.重复1,2 4,判断栈是否为空,为空则返回true