zoukankan      html  css  js  c++  java
  • 算法题:求一个数在数组中出现的位置

    //有一个int型数组,每两个相邻的数之间的差值不是1就是 
    //- 1.如今给定一个数。要求查找这个数在数组中的位置。
    #include <iostream>
    using namespace std;
    void Grial(int a[], int n, int val)
    {
        //我的思路是从第一个数開始,假设这个数是2,
        //而我要找的数是5。那么最好我也必须向后面
        //跳5-2=3个位置,由于每一个数字仅仅相差1或者-1.
        int i = 0;
        int *b = new int[n];//假设所有是val,则须要n空间。
        int k = 0;
        for (; i < n;)
        {
            if (a[i] == val)
            {
                b[k++] = i;
                i++;
            }
            else
            {
                int len = a[i]>val ?

    a[i] - val : val - a[i]; i += len; } } cout << val << "出现的下标位置有:"; for (i=0; i < k; i++) { cout << b[i] << " "; } cout << endl; } int main() { int a[] = {2,3,4,5,6,7,6,5,4,3,2,1,2,3,4,5}; Grial(a, sizeof(a) / sizeof(int),5); return 0; }

  • 相关阅读:
    文档API
    vi编辑器常用方法
    storm实战入门一
    redis教程
    为redis分配一个新的端口
    Lucene分页查询
    Lucene搜索方式大合集
    HBase Scan类用法
    java.util.Queue用法
    Makefile中预定义变量
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7217724.html
Copyright © 2011-2022 走看看