统计一个数字在排序数组中出现的次数
2017-07-08 20:47
423 查看
/** 数字在排序数组中出现的次数 题目:统计一个数字在 排序 数组中出现的次数。例如输入排序数组{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; } }
相关文章推荐
- 【剑指offer】统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。 数组是排序的,只需要找到第一个K和最后一个K就可以知道有多少个,
- 统计一个数字在排序数组(从小到大排序)中出现的次数。
- 剑指offer-统计一个数字在排序数组中出现的次数-PHP
- 《牛客网剑指offer37题》统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数(二分法)
- 剑指offer---统计一个数字在排序数组中出现的次数。(PHP)
- 【剑指Offer-知识迁移能力】统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数
- 《剑指Offer》面试题:统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 【c语言】统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 一个一维整形数组,若干个数字,统计数组中不同的数字出现的次数,并按照出现频率从小到大排序输出,相同频率按数字大小排序输出
- 统计一个数字在排序数组中出现的次数(二分法)
- 【c语言】统计一个数字在排序数组中出现的次数
- 《剑指offer》- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数