import sys
alist = []
for line in sys.stdin:
a = line.split()
alist.append(int(a[0]))
for i in sorted(list(set(alist[1:]))):
print(i)
分类目录归档:开发
空瓶子-算法
import sys
def drink_soda(n):
if n == 0:
exit(0)
total_drinks = 0
empty_bottles = n
while empty_bottles >= 3:
drinks = empty_bottles // 3
total_drinks += drinks
empty_bottles = empty_bottles % 3 + drinks
if empty_bottles == 2:
tot...
列表推导式-初级-Python
当你处理列表并输出结果时,你可以使用列表推导式来实现一行表达式。列表推导式允许你在一行代码中对列表进行转换、筛选或处理。
举个例子,如果你想要将一个列表中的每个元素乘以 2 并输出结果,你可以这样做:
original_list = [1, 2, 3, 4, 5]
result = [x * 2 for x in original_list]
print(result) # 输出结果为 [2, 4, 6, 8, 10]
在这个例子中,[x * 2 for x in original_list]
就是一个列表推导式,它遍历原始列表中的每个元素,并将每个元素乘以 2,最后生成一个新的列...
运算符-初级-Python
在 Python 中,双斜杠 //
是整除运算符,它用来执行整数除法并返回一个整数结果。即,它会计算除法操作后的商,并向下取整到最接近的整数。举个例子:
result = 10 // 3
print(result) # 输出结果为 3
在这个例子中,10 // 3
的结果是 3
,因为 3 乘以 3 是最接近但小于 10 的整数。
切片-初级-Python
在 Python 中,可以使用数组切片(slice)来获取列表、元组或字符串等序列类型的子集。数组切片的语法如下:
sequence[start:stop:step]
start
:起始索引,表示切片开始的位置(包含该位置)。stop
:结束索引,表示切片结束的位置(不包含该位置)。step
:步长,表示从起始索引到结束索引的步长大小。
下面是一些示例:
- 对列表进行切片:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(my_list[2:6]) # 输出 [3, 4, 5, 6]
print(my_list[::2]) # 使用步长...
enumerate-枚举-python
搜索-算法
搜索算法是用于在给定数据集中查找目标元素或满足特定条件的元素的算法。常见的搜索算法有以下几种:
-
顺序搜索(Sequential Search):逐个遍历数据集,依次比较每个元素与目标元素是否匹配,时间复杂度为O(n)。
-
二分搜索(Binary Search):针对有序数据集,在每次比较中将数据集一分为二,通过比较中间元素与目标元素的大小关系确定下一步搜索的方向,时间复杂度为O(log n)。
-
插值搜索(Interpolation Search):针对有序数据集,根据目标元素与数据集的最大值和最小值之间的比例来估计目标元素的位置,从而优化搜索效率,时间复杂度取决于数据分布情况,...
排序-库-python
接雨水-题目-算法
"接雨水"问题是一个经典的算法问题,通常也称为Trapping Rain Water。这个问题描述如下:给定n个非负整数表示一系列宽度为1的墙,计算这些墙围成的容器能够容纳多少水。
解决这个问题的常见算法是利用双指针或者栈来进行处理。以下是一种基于双指针的解法:
- 使用两个指针left和right分别指向数组的两端。
- 初始化变量leftMax和rightMax为0,用来表示左侧和右侧的最大高度。
- 当left <= right时,进行循环:
- 如果height[left] < height[right],则判断当前height[left]是否小于等于leftMax,如果是,则可以...