半段查找。
int GetFirstK(int* data, int length, int k, int start, int end)
{
if (start > end)
return -1;
int middleIndex = (start + end) / 2;
int middleData = data[middleIndex];
if (middleData == k)...
分类:
编程语言 时间:
2015-07-10 22:24:50
阅读次数:
178
思路:应该是用二分查找分别找到该数字第一次和最后一次出现的位置,相减即可。O(logn)int findLeft(int a[], int n, int num){ int l = 0, r = n - 1; while(l = 0 && a[l] == num) //找左边界 ...
分类:
编程语言 时间:
2015-07-08 22:10:48
阅读次数:
161
//数字在排序数组中出现的次数。
//统计一个数字在排序数组中出现的次数。例如:排序数组{1,2,3,3,3,3,4,5}和数字3,由于3出现了4次,因此输出4.
#include
int One_Num_Times(int *arr, int len, int num)
{
int i = 0;
int times = 0;
for (i = 0; i < len;i++,arr++)...
分类:
编程语言 时间:
2015-07-07 17:03:07
阅读次数:
130
//数字在排序数组中出现的次数(修改)
//统计一个数字在排序数组中出现的次数。例如:排序数组{1,2,3,3,3,3,4,5}和数字3,由于3出现了4次,因此输出4.
#include
int One_Num_Times(int *arr, int len, int num)
{
int i = 0;
int times = 0;
for (i = 0; i =*arr;i++,arr+...
分类:
编程语言 时间:
2015-07-07 16:55:16
阅读次数:
167
解决本道题的思路是:
第一步:预排序,数组变成有序状态。
第二步:统计各个元素出现的次数,得到主元。
在第一步中如果使用自己编写的冒泡排序,将会出现time limit exceed,所以改用STL的排序(很赞的参考)class Solution {
public:
int majorityElement(vector& nums) {
vector...
分类:
其他好文 时间:
2015-07-06 12:28:42
阅读次数:
99
题目:统计一个数字:在排序数组中出现的次数。举例说明例如输入排序数组{ 1, 2, 3, 3, 3, 3, 4, 5}和数字3 ,由于3 在这个数组中出现了4 次,因此输出4 。解题思路 利用改进的二分算法。
如何用二分查找算法在数组中找到第一个k,二分查找算法总是先拿数组中间的数字和k作比较。如果中间的数字比k大,那么k只有可能出现在数组的前半段,下一轮我们只在数组的前半段查找就可以了。...
分类:
编程语言 时间:
2015-07-06 12:26:35
阅读次数:
190
1 class Solution { 2 public: 3 /** 4 * @param A: An integer array. 5 * @param B: An integer array. 6 * @return: a double whose for...
分类:
编程语言 时间:
2015-07-04 00:41:07
阅读次数:
143
1 class Solution { 2 public: 3 /** 4 * @param A: sorted integer array A which has m elements, 5 * but size of A is m+n 6 ...
分类:
编程语言 时间:
2015-06-29 23:48:23
阅读次数:
346
A subroutine of merge sort. 1 class Solution { 2 public: 3 /** 4 * @param A and B: sorted integer array A and B. 5 * @return: A new sort...
分类:
编程语言 时间:
2015-06-29 19:23:28
阅读次数:
403
问题描述Given a sorted integer array without duplicates, return the summary of its ranges.
For example, given [0,1,2,4,5,7], return [“0->2”,”4->5”,”7”].
意:找出排序数组(无重复数字)中的各个连续的范围...
分类:
其他好文 时间:
2015-06-29 11:49:30
阅读次数:
528