求数组中两个元素的最小距离
来源:互联网 发布:网络舆情监控资质 编辑:程序博客网 时间:2024/05/22 16:04
一个数组,含有重复元素,给出两个数num1和num2,求这两个数字在数组中出现的位置的最小距离。
要求O(n)时间复杂度,O(1)空间复杂度。
思路:设置2个指针,数组扫描一遍,出现num1和num2,分别设置相应的指针变量,然后计算最小距离。
代码如下:
#include <stdio.h>int min(int a, int b){ return a<b?a:b;}int findMinDist(int a[], int len, int num1, int num2){ if ( a==NULL || len<2 ) { return 0; } int p1 = -1; int p2 = -1; int minDist = len; for (int i=0; i<len; i++) { if (a[i]==num1) { p1 = i; if (p2!=-1) { minDist = min(minDist, p1-p2); } } if (a[i]==num2) { p2 = i; if (p1!=-1) { minDist = min(minDist, p2-p1); } } } return minDist;}int main(int argc, const char * argv[]){ int a[]={2,4,3,5,5,2,1,3,6,7,2,2,3,4,4}; int len = 15; int num1 = 3; int num2 = 2; printf("MinDist = %d\n",findMinDist(a, len, num1, num2)); return 0;}
0 0
- 【谷歌面试题】求数组中两个元素的最小距离
- 求数组中两个元素的最小距离
- 求数组中两个元素的最小距离
- 数组中两个元素的最小距离
- 数组中两个元素最小的距离
- 数组中两个元素的最小距离
- 数据结构面试题总结3——数组:求数组中两个元素的最小距离
- 求数组中两个字符串的最小距离 Python 版
- 数组中两个字符串的最小距离
- Java求解数组中的两个元素的最小距离
- 求两个升序数组中最小元素差
- 求数组中绝对值最小的元素
- 求N的元素中最小的两个元素
- 求两个有序数组中,各个元素的c差值最小
- 字符串之数组中两个字符串的最小距离
- 字符串问题---数组中两个字符串的最小距离
- 字符串数组中两个字符串的最小距离
- 返回数组中两个元素的最新距离
- VBS基础篇 - 对象(9) - RegExp对象
- ural Mnemonics and Palindromes (dp)
- Brief History of Machine Learning
- AxureRP7.0基础教程 部件详解 文本段落TextArea
- 移动应用与网络社交平台
- 求数组中两个元素的最小距离
- 基数树(radix tree)
- 编写Web时可能会用的工具类----SqlHelper.java(韩顺平)
- android中的OOM和内存分析
- LED 四个8x8 组合 16X16点阵移位分析
- vc windows服务程序调试
- MR笔记:Map-Reduce实践笔记
- Java虚拟机深入学习之三: Java虚拟机的垃圾收集算法
- 基于.NET WPF+ASP.NET MVC4技术构建夜猫商务会所运营管理平台