博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode c语言-Search for a Range
阅读量:6307 次
发布时间:2019-06-22

本文共 1483 字,大约阅读时间需要 4 分钟。

Title:

Given an array of integers sorted in ascending order, find the starting and ending position of a given target value.

Your algorithm's runtime complexity must be in the order of O(log n).

If the target is not found in the array, return [-1, -1].

For example,

Given [5, 7, 7, 8, 8, 10] and target value 8,
return [3, 4].

这道题给定一个排序好的数组,然后找到重复的数字,并输出序号即可。

该题的要求是时间复杂度为O(log n),也就是说不能采用从头遍历到尾的方法,容易超时。因此采用另一种做法,从两边同时向中间靠拢。由于是排序好的数组,因此判断逻辑较为简单。

Solution:

int* searchRange(int* nums, int numsSize, int target, int* returnSize) {    int *result=(int*)malloc(sizeof(int)*2);    int i,j;    int tmp;     	if (numsSize<=0) { 		*returnSize=2; 		result[0]=-1; 		result[1]=-1; 		return result;	}        if (numsSize==1) {        if (target==nums[0]) {        *returnSize=2; 		result[0]=0; 		result[1]=0;        return result;        }        else {        *returnSize=2; 		result[0]=-1; 		result[1]=-1;        return result;        }    }	i=0;	j=numsSize-1;	while(i
nums[j]){ *returnSize=2; result[0]=-1; result[1]=-1; return result; } else if (target==nums[i]) { tmp=i+1; while(tmp
=0 && nums[tmp]==nums[j]) { tmp--; } *returnSize=2; result[0]=tmp+1; result[1]=j; return result; } else { if (i+1==j-1) i++; else { i++; j--; } } } *returnSize=2; result[0]=-1; result[1]=-1; return result;}

转载于:https://www.cnblogs.com/sichenzhao/p/9320214.html

你可能感兴趣的文章
zip
查看>>
How to recover from root.sh on 11.2 Grid Infrastructure Failed
查看>>
rhel6下安装配置Squid过程
查看>>
《树莓派开发实战(第2版)》——1.1 选择树莓派型号
查看>>
在 Linux 下使用 fdisk 扩展分区容量
查看>>
结合AlphaGo算法和大数据的量化基本面分析法探讨
查看>>
如何在 Ubuntu Linux 16.04 LTS 中使用多个连接加速 apt-get/apt
查看>>
《OpenACC并行编程实战》—— 导读
查看>>
机器学习:用初等数学解读逻辑回归
查看>>
如何在 Ubuntu 中管理和使用逻辑卷管理 LVM
查看>>
Oracle原厂老兵:从负面案例看Hint的最佳使用方式
查看>>
把自己Github上的代码添加Cocoapods支持
查看>>
C语言OJ项目参考(2493)四则运算
查看>>
零基础入门深度学习(二):神经网络和反向传播算法
查看>>
find和xargs
查看>>
数据结构例程—— 交换排序之快速排序
查看>>
WKWebView代理方法解析
查看>>
IOS定位服务的应用
查看>>
[SMS&WAP]实例讲解制作OTA短信来自动配置手机WAP书签[附源码]
查看>>
IOS中图片(UIImage)拉伸技巧
查看>>