第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 查找整数
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 查找整数
目录
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 查找整数
前言
最近的一些文章都可能会很碎,写到哪里是哪里,过一阵子会具体的整理一遍,这里其它的类型题先往后排一排,因为蓝桥最后考的也就是对题目逻辑的理解能力,也就是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个的,这类题不能说是送分,很多孩子由于没有刷题所以解起来还是有一定难度的,但是对于努力刷题的孩子们来说就是很简单的了。
相关文章
- pycharm的使用教程_gg修改器使用教程基础
- Iptables防火墙基础讲解
- 【c++】【基础】【primer_plus】【第一章】预备知识
- JAVA基础之单元测试
- 【算法基础】线性、二分法查找
- Python基础-5 常用的数据结构
- (一)STM32基础——新建基于固件库的工程模板
- 【ES三周年】+Elasticsearch Service基础知识点
- Linux基础:Linux服务器最多能开放多少个端口
- 使用jqMobi开发app基础:Scrolling的使用,向上向下拖动,动态添加数据详解手机开发
- Python学习:3.Python学习基础详解编程语言
- Linux 基础知识实践指南(linux基础练习)
- 籍MySQL零基础入门轻松掌握数据库技能(0基础mysql书)
- PHP面向对象学习笔记之一基础概念
- C#零基础学习理解委托