华为OD 小明找位置 C语言实现

cpp 复制代码
int main(void)
{
    int i = 0;
    int len = 0;
    char c = '\0';
    int data[100];
    int left = 0;
    int right = 0;
    int middle = 0;
    int tag = 0;
    int index = 0;

    while(scanf("%d",&data[i]) == 1)
    {
        i++;
        len++;

        c = getchar();
        if(c == '\n')
            break;
    }

    scanf("%d",&tag);

//    for(i=0; i<len; i++)
//    {
//        printf("%d ",data[i]);
//    }
// printf("%d \n",tag);

    right = len-1;
    middle = (left+right)/2;

    while(left<right)
    {
        if(data[middle]>tag)
        {
            right = middle-1;
        }
        else
        {
            left = middle+1;
        }

        if(left == right)
        {
            index = left+2;
            break;
        }
        middle  = (left+right)/2;

    }

    printf("%d",index);
}
相关推荐
生信研究猿16 分钟前
leetcode 416. 分割等和子集
算法·leetcode·职场和发展
hnjzsyjyj17 分钟前
洛谷 B3622:枚举子集(递归实现指数型枚举)← DFS
数据结构·dfs
狗哥哥23 分钟前
面包屑自动推导的算法设计:从“最短路径匹配”到工程可落地
算法·架构
counting money27 分钟前
Spring框架基础(配置篇)
java·后端·spring
秋91 小时前
OceanBase与GreatSQL在Java应用中的性能调优方法有哪些?
java·开发语言·oceanbase
今天又在写代码1 小时前
并发问题解决
java·开发语言·数据库
老王以为1 小时前
前端视角下的 Java
java·javascript·程序员
隔壁大炮1 小时前
Day07-RNN介绍
人工智能·pytorch·rnn·深度学习·神经网络·算法·numpy