使用双指针,一个左指针指向数组左端,一个右指针指向数组右端
左指针从左向右寻找目标值,右指针从右向左寻找目标值
情况1:数组中存在目标值
结果为:右指针下标-左指针下标+1
情况2:数组中不存在目标值
即左右指针互相越界 返回0
public class Solution {
public int GetNumberOfK(int [] array , int k) {
int i=0;
int j=array.length-1;
while(i<array.length && array[i]!=k) i++;
while(j>=0 && array[j]!=k) j--;
if(i>j) return 0;
return j-i+1;
}
}


京公网安备 11010502036488号