基础练习 查找整数
来源:互联网 发布:淘宝可以多久确认收货 编辑:程序博客网 时间:2024/06/05 15:38
问题描述
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9
样例输出
2
数据规模与约定
1 <= n <= 1000。
这道题我交了两个答案,但结果却有点出乎意料,两个答案的运行快慢和我想象的相反。先上代码。
#include<stdio.h>int main(){ int n, find, i; scanf("%d", &n); int list[n]; for(i = 0; i < n; i++){ scanf("%d", &list[i]); } scanf("%d", &find); for(i = 0; i < n; i++){ if(list[i] == find) break; } if(i < n) printf("%d\n", i + 1); else printf("-1\n"); return 0;}
#include<stdio.h>int main(){ int n, list[1000]={0}, target, find, i; scanf("%d", &n); for(i = 1; i <= n; i++){ scanf("%d", &target); if(list[target] == 0) list[target] = i; } scanf("%d", &find); if(list[find]) printf("%d\n", list[find]); else printf("-1\n"); return 0;}
第二段代码运行的速度比第一段的慢,经过对比之后,两段代码时间复杂度相同,均是O(n)。但后来一想,第一段代码可以提前跳出循环,除非在最坏情况下,否则第一段代码肯定比第二段快。
PS:原本以为以空间为代价换取时间的,谁知道竟然是得不偿失。
阅读全文
0 0
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- 基础练习 查找整数
- Struts使用用解耦合的方式获取Session
- 有营养的废话:人工智能、大数据和高性能计算融合成为趋势丨AI推理服务器,能读懂福尔摩斯?【软件网每日新闻播报│第10-24期】
- 车载设置--自定义版本信息 build.prop生成过程分析
- C++将无结束符字符串(ASCII)转为数字数值的快速方法(支持16进制)
- 爬坑日记--------Windows安装redis
- 基础练习 查找整数
- TCP通信丢包原因总结
- js HTML DOM对象
- Napa.js简介
- 信管16数据结构实验6:树和二叉树的实验2
- ML-0101-梯度下降小结
- Python可视化学习笔记一
- oracle在hibernate中的使用
- 简单排序