前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

找x

作者头像
喜欢ctrl的cxk
发布2019-11-08 10:40:04
5440
发布2019-11-08 10:40:04
举报
文章被收录于专栏:Don的成长史Don的成长史

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42449444/article/details/91129010

题目描述:

输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。

输入描述:

代码语言:javascript
复制
测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。

输出描述:

代码语言:javascript
复制
对于每组输入,请输出结果。

输入样例:

代码语言:javascript
复制
2
1 3
0

输出样例:

代码语言:javascript
复制
-1

解题思路:

不敢相信这是哈工大机试题(牛客网上写的),好起来了,查找数组中的元素下标 直接无脑用unordered_map,其中unordered_map的key是元素,value是该元素的下标。如果unordered_map中不存在这个元素就会得到0 而题目要求输出-1,如果存在这个元素,则输出m[x]-1(因为在unordered_map中 我是从1开始记录下标的 所以输出的时候需要减1)。

AC代码:

代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,x;
    cin >> n;
    unordered_map<int,int> m;
    for(int i = 1; i <= n; i++)
    {
        cin >> x;
        m[x] = i;
    }
    cin >> x;
    //printf("%d\n", m[x] ? m[x]-1 : -1);  //元素不存在就输出-1
    cout << m[x]-1 << endl;   //其实上面可以这样写成输出m[x]-1
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述:
  • 输入描述:
  • 输出描述:
    • 输入样例:
      • 输出样例:
        • 解题思路:
          • AC代码:
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档