第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 查找整数

简介: 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 查找整数

第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 查找整数



前言

       最近的一些文章都可能会很碎,写到哪里是哪里,过一阵子会具体的整理一遍,这里其它的类型题先往后排一排,因为蓝桥最后考的也就是对题目逻辑的理解能力,也就是dp分析能力了,所以就主要目标定在这里,最近的题目会很散,很多,基本上都是网罗全网的一些dp练习题进行二次训练,准备比赛的学生底子薄的先不建议看啊,当然,脑子快的例外,可以直接跳过之前的一切直接来看即可,只需要你在高中的时候数学成绩还可以那就没啥问题,其实,dp就是规律总结,我们只需要推导出对应题目的数学规律就可以直接操作,可能是一维数组,也可能是二维数组,总体来看二维数组的较多,但是如果能降为的话建议降为,因为如果降为起来你看看时间复杂度就知道咋回事了,那么在这里祝大家能无序的各种看明白,争取能帮助到大家。


基础练习 查找整数

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。

输入格式

第一行包含一个整数n。

第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。

第三行包含一个整数a,为待查找的数。

输出格式

如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。

样例输入

6

1 9 4 8 3 9

9

样例输出

2

数据规模与约定

1 <= n <= 1000。

题解:这个题目说白了就是根据输入顺序进行遍历,我们只需要确定罗列的方式即可,如果放在数组里面遍历后直接看下角标,然后下角标+1输出即可,如果是字符串的话直接使用indexOf看看第一次出现的坐标就OK,当然这里也需要+1才能是正确的答案。

C语言

纯暴力处理就完事,C语言最快。

#include <stdio.h>
#define MAXN 10001
int n, a, ans;
int s[MAXN];
int main()
{
    int i;
    scanf("%d", &n);
    for (i = 0; i < n; ++i)
        scanf("%d", &s[i]);
    scanf("%d", &a);
    ans = -1;
    for (i = 0; i < n; ++i)
    {
        if (s[i] == a)
        {
            ans = i + 1;
            break;
        }
    }
    printf("%d", ans);
    return 0;
}

C++语言

其实这个输入方式还是比较麻烦的,但是查找起来直接就遍历后+1返回速度是很快的。

#include <iostream>
using namespace std;
const int MAXN = 10001;
int n, a, ans;
int s[MAXN];
int main()
{
    cin >> n;
    for (int i = 0; i < n; ++i)
        cin >> s[i];
    cin >> a;
    ans = -1;
    for (int i = 0; i < n; ++i)
    {
        if (s[i] == a)
        {
            ans = i + 1;
            break;
        }
    }
    cout << ans << endl;
    return 0;
}

Java语言

nextLine还是很好用的呢。

import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
    Scanner sc=new  Scanner(System.in);
    int n=sc.nextInt();
    sc.nextLine();
    int[] num=new int[n];
    for(int i=0;i<n;i++){
      num[i]=sc.nextInt();
    }
    sc.nextLine();
    int x=sc.nextInt();
    int result=-1;
    for(int i=0;i<n;i++){
      if(num[i]==x){
        result=i+1;
        break;
      }
    }
    System.out.println(result);
  }
}

Python语言

无论怎么算还是需要遍历看看的,最终+1完成结果输出。

x = eval(input())
a = []
n = input().split(" ")
for i in range(0,x):
    a.append(int(n[i]))
y = eval(input())
try:
    z = a.index(y)
except:
    z = -2
print(z+1)

总结

这类小题一般蓝桥杯都会放1~2个的,这类题不能说是送分,很多孩子由于没有刷题所以解起来还是有一定难度的,但是对于努力刷题的孩子们来说就是很简单的了。

没有什么不付出就能拿到的结果,我们都是在负重前行,最终结果与自身先天的脑力有一定的关系,但是还是有很大一部分看自己后天的努力,其实从报名到比赛也就5个月左右,真正刷题的事件也就2个月,2个月回忆一下你真正的认真刷过题吗,如果你真的用尽所有的精力去努力了,那么我相信你最终的成绩一定会让你满意的,加油。


相关文章
|
6月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
109 0
|
1月前
|
人工智能 C++
第十四届蓝桥杯省赛大学B组(C/C++)整数删除
第十四届蓝桥杯省赛大学B组(C/C++)整数删除
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
63 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
66 0
|
6月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
80 1
|
6月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
83 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
83 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
89 0
|
6月前
|
机器学习/深度学习 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
92 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
93 0
下一篇
无影云桌面