XShell idea离线安装 微服务 Redis Hibernate Cluster模式 class sockets unix caching bitmap ionic3 matlab求矩阵最大值 phpstorm插件 jquery获取兄弟节点 python如何实现多线程 python写入文件 java中tostring java写文件 java获取ip地址 java时间转换 java创建目录 linux系统安装教程图解 乱码查看器 找茬辅助 h370主板 网络文件服务器 魔兽地图七个人 橄榄山快模 给视频加字幕的软件 medcalc mathcad qq游戏黑名单 studioone lol修改皮肤 机箱最佳风道图 js观察者模式 和彩云是什么 九宫格拼图 小程序开发者工具
当前位置: 首页 > 学习教程  > python

算法刷题系列(四)蓝桥杯python算法训练1

2021/2/6 22:19:36 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

- 区间K大数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列长度。 第二行包含n个正整数,表示给定的序列。…

- 区间K大数

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。
输入格式
第一行包含一个数n,表示序列长度。
第二行包含n个正整数,表示给定的序列。
第三个包含一个正整数m,表示询问个数。
接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。
输出格式
总共输出m行,每行一个数,表示询问的答案。
样例输入
5
1 2 3 4 5
2
1 5 2
2 3 2
样例输出
4
2
数据规模与约定
对于30%的数据,n,m<=100;
对于100%的数据,n,m<=1000;
保证k<=(r-l+1),序列中的数<=106。

  • 解答程序
# 十六进制转十进制
n = int(input())
number_list = list(map(int, input().split()))
m = int(input())
tar_list = []
for i in range(m):
    l, r, k = list(map(int, input().split()))
    tar_list.append(sorted(number_list[l-1:r], reverse=True)[k-1])
for i in range(m):
    print(tar_list[i])
  • 经验教训
    1、自己写快排不如直接用sorted,缺点是这样对于一些常用的算法无法快速默写。
    2、列表切片的时候list[a:b]是指索引为a到b-1的所有元素。
    3、本来在思考是否需要用深拷贝copy.deepcopy来将列表区间取出来然后计算,后来发现直接用python的内建函数sorted更快。
    4、做这类算法题目的时候计时是比较重要的。

- 最大最小公倍数

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 106。

  • 解答程序
n = int(input())
if n % 2 == 1:
    print(n * (n - 1) * (n - 2))
else:
    if n % 3 == 0:
        print((n - 1 ) * (n - 2) * (n - 3))
    else:
        print(n * (n - 1) * (n - 3))
  • 经验教训
    1、这题是比较简单的数论知识,考量连续整数在p的剩余类里面的情况即可。

本文链接: http://www.dtmao.cc/news_show_2000006.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?