统计一个数字在排序数组中出现的次数

来源:互联网 发布:it技能 help desk 编辑:程序博客网 时间:2024/06/07 20:37
/**数字在排序数组中出现的次数题目:统计一个数字在    排序   数组中出现的次数。例如输入排序数组{1,2,3,3,3,3,4,5}和数字 3,由于 3 在这个数组中出现了 4 次,因此输出 4。思路:既然输入的数组是排序数组,那么可以定位start以及end的位置找到第一次出现变式:若现在给的数组中元素是乱序的,给定数组中的元素,找其出现的次数,要求时间复杂度小于O(n)思路:先调用数组工具类Arrays中的sort(int[] a) 排序方法,然后利用以下方法实现即可*/public class ArrayDigitalOccurTimes_2 {public static void main(String[] args){int[] a = {1,2,3,3,3,3,3,4,4,5};int b = findNumbers(a,4);System.out.println(b);}public static int findNumbers(int[]arr,int a)throws RuntimeException{if(arr==null||arr.length==0)return -1;int start=0,end=arr.length-1;//当头和尾角标对应的元素值不相等时,进行循环,一旦对应相等,就停止循环while(arr[start]!=arr[end]){if(a!=arr[start])start++;if(a!=arr[end])end--;}return end-start+1;} }


阅读全文
0 0
原创粉丝点击