获得徽章 6
#刷题交流#
2. 徒步旅行中的供给问题
from collections import deque
def solution(n: int, k: int, data: list) -> int:
assert n == len(data)
assert k < n
mins = deque()
result = 0
for j in range(n):
while len(mins) > 0 and mins[-1][1] > data[j]:
mins.pop()
mins.append([j, data[j]])
while mins[0][0] <= j - k:
mins.popleft()
result += mins[0][1]
return result
if __name__ == '__main__':
print(solution(n = 5 ,k = 2 ,data = [1, 2, 3, 3, 2]) == 9)
print(solution(n = 6 ,k = 3 ,data = [4, 1, 5, 2, 1, 3]) == 9)
print(solution(n = 4 ,k = 1 ,data = [3, 2, 4, 1]) == 10)
2. 徒步旅行中的供给问题
from collections import deque
def solution(n: int, k: int, data: list) -> int:
assert n == len(data)
assert k < n
mins = deque()
result = 0
for j in range(n):
while len(mins) > 0 and mins[-1][1] > data[j]:
mins.pop()
mins.append([j, data[j]])
while mins[0][0] <= j - k:
mins.popleft()
result += mins[0][1]
return result
if __name__ == '__main__':
print(solution(n = 5 ,k = 2 ,data = [1, 2, 3, 3, 2]) == 9)
print(solution(n = 6 ,k = 3 ,data = [4, 1, 5, 2, 1, 3]) == 9)
print(solution(n = 4 ,k = 1 ,data = [3, 2, 4, 1]) == 10)
展开
评论
1
#刷题交流#
1. 找单独的数
int solution(std::vector<int> cards) {
// Edit your code here
int res=0;
for(auto c:cards){
res^=c;
}
return res;
}
1. 找单独的数
int solution(std::vector<int> cards) {
// Edit your code here
int res=0;
for(auto c:cards){
res^=c;
}
return res;
}
展开
评论
1
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章