写在开头的话
学习了今天的基础知识,让我们来做几道题来练练手吧。(题目是别的地方扒来的,参考答案是我自己写的,肯定不是最优解,有更好的方法欢迎评论区交流)
题目一——第k大的数

题目二——计数排序

参考答案
第一题参考答案(Python版)
import heapq
import sys
def main():
data = sys.stdin.read().strip().split()
if not data:
return
it = iter(data)
n = int(next(it))
k = int(next(it))
a = [int(next(it)) for _ in range(n)]
xs = [int(next(it)) for _ in range(k)]
# 构建最小堆,堆顶即为第 n 大的数
heap = a[:]
heapq.heapify(heap)
ans = []
for x in xs:
if x > heap[0]:
heapq.heapreplace(heap, x)
ans.append(str(heap[0]))
sys.stdout.write(' '.join(ans))
if __name__ == '__main__':
main()
第二题参考答案(Python版)
def main():
n = int(input().strip()) # 读取数组长度
arr = list(map(int, input().strip().split())) # 读取数组元素
arr.sort() # 排序
print(' '.join(map(str, arr))) # 输出结果
if __name__ == "__main__":
main()
&spm=1001.2101.3001.5002&articleId=155790242&d=1&t=3&u=8e34100d616147febe9c589d0a3f7d6b)
1862

被折叠的 条评论
为什么被折叠?



