数字在排序数组中出现的次数
来源:互联网 发布:蚁群算法基本思想 编辑:程序博客网 时间:2024/06/12 07:14
代码:
#include <iostream>using namespace std;//找到第一个k的下标int GetFirstIndex(int* pArray,int k, int start, int end){ int mid = 0; while (start <= end) { mid = (start + end) / 2; if (pArray[mid] == k) { if (mid == 0 || (mid > 0 && pArray[mid - 1] != k)) return mid; else end = mid - 1; } else if (pArray[mid] < k) { start= mid + 1; } else { end = mid - 1; } } return -1;}//找到最后一个k的下标int GetLastIndex(int* pArray, int k, int start, int end){ int mid = 0; int len = end; while (start <= end) { mid = (start + end) / 2; if (pArray[mid] == k) { if ((mid < len && pArray[mid + 1] != k) || mid == len) return mid; else start = mid + 1; } else if (pArray[mid] < k) { start = mid + 1; } else { end = mid - 1; } } return -1;}int main(){ int pArray[] = { 1, 2, 3, 3, 3, 3, 4, 5 }; int nLength = sizeof(pArray) / sizeof(pArray[0]); int k; cin >> k; int index1 = GetFirstIndex(pArray, k, 0, nLength - 1); int index2 = GetLastIndex(pArray, k, 0, nLength - 1); if (index2 >= 0 && index1 >= 0) cout << "数字" << k << "出现次数: " << index2 - index1 + 1 << endl; cout << endl; system("pause"); return 0;}
测试:
0 0
- 【数组8】数字在排序数组中出现的次数
- 【数组4】数字在排序数组中出现的次数
- 数组9:数字在排序数组中出现的次数
- 数字在排序数组中出现的次数(数组)
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 统计一个数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 在排序数组中,找出给定数字的出现次数
- oracle delete数据后还原
- spring 官方文档
- hdu1565 方格取数(1)&&hdu1569 方格取数(2)(最小割)
- 面向对象的方式来实现分页的功能——分页类PageBean
- 【JZOJ4841】【NOIP2016提高A组集训第4场11.1】平衡的子集
- 数字在排序数组中出现的次数
- 数据切分——Mysql分区表的建立及性能分析
- Java,C++中的容器类
- 线程中的一些基本函数
- 机器学习(三):逻辑回归应用_手写数字识别_OneVsAll_Python
- Python高阶函数--reduce
- Maven学习(1)
- 近期FlaskWeb学习
- MAVEN创建多模块项目(水平与树形结构)