饭馆菜品选择问题
小C来到了一家饭馆,这里共有 n_n_ 道菜,第 i_i_ 道菜的价格为 a_i。其中一些菜中含有蘑菇,s_i 代表第 i_i_ 道菜是否含有蘑菇。如果 s_i = '1',那么第 i_i_ 道菜含有蘑菇,否则没有。
小C希望点 k_k_ 道菜,且希望总价格尽可能低。由于她不喜欢蘑菇,她希望所点的菜中最多只有 m_m_ 道菜含有蘑菇。小C想知道在满足条件的情况下能选出的最小总价格是多少。如果无法按照要求选择菜品,则输出-1。
测试样例
样例1:
输入:s = "001", a = [10, 20, 30], m = 1, k = 2
输出:30
样例2:
输入:s = "111", a = [10, 20, 30], m = 1, k = 2
输出:-1
样例3:
输入:s = "0101", a = [5, 15, 10, 20], m = 2, k = 3
输出:30
:::success 模拟
:::
def solution(s: str, a: list, m: int, k: int) -> int:
# write code here
if len(s) < k:
return -1
no_mushroom = []
with_mushroom = []
for i in range(len(s)):
if s[i] == '1':
with_mushroom.append(a[i])
else:
no_mushroom.append(a[i])
with_mushroom.sort()
no_mushroom.sort()
if len(no_mushroom) < k - m:
return -1
w, n = 0, 0
res, count, mcount = 0, 0, 0
while count < k:
if n >= len(no_mushroom) or (w < len(with_mushroom) and with_mushroom[w] < no_mushroom[n] and mcount < m):
# print(1, with_mushroom[w])
res += with_mushroom[w]
count += 1
mcount += 1
w += 1
else:
# print(0, no_mushroom[n])
res += no_mushroom[n]
count += 1
n += 1
return res
if __name__ == '__main__':
print(solution("100111110010000", [3, 4, 9, 12, 16, 4, 3, 9, 1, 11, 7, 7, 4, 4, 11], 1, 4) == 12)
# print(solution("001", [20, 10, 30], 1, 2) == 30)
# print(solution("111", [10, 20, 30], 1, 2) == -1)
# print(solution("0101", [5, 15, 10, 20], 2, 3) == 30)
完美偶数
题目描述如下:
小C定义了一个“完美偶数”。一个正整数 被认为是完美偶数需要满足以下两个条件:
- 是偶数;
- 的值在区间 之间。
现在,小C有一个长度为 的数组 ,她想知道在这个数组中有多少个完美偶数。
测试样例:
样例1:
输入:**n = 5, l = 3, r = 8, a = [1, 2, 6, 8, 7]** 输出:**2**
样例2:
输入:**n = 4, l = 10, r = 20, a = [12, 15, 18, 9]** 输出:**2**
样例3:
输入:**n = 3, l = 1, r = 10, a = [2, 4, 6]** 输出:**3**
:::success 太水了
:::
def solution(n: int, l: int, r: int, a: list) -> int:
# write code here
count = 0
for x in a:
if x % 2 == 0 and l <= x <= r:
count += 1
return count
if __name__ == '__main__':
print(solution(5, 3, 8, [1, 2, 6, 8, 7]) == 2)
print(solution(4, 10, 20, [12, 15, 18, 9]) == 2)
print(solution(3, 1, 10, [2, 4, 6]) == 3)
Host 管理
- 流量负载:文件大小越来越大
- 名称冲突:无法保证主机名称的唯一性,
- 时效性:分发靠人工上传
域名系统
- 域名购买
- 购买二级域名
- 域名备案
- 修改配置
如何开放外部用户访问
租赁一个外网ip,专门用于外部用户访问门户网站,将www.example.com 解析到外网 ip ,将ip绑定到一台物理机上,并发布公网 route, 用于外部用户访问。
自建 DNS 服务器
- 内部域名也得去公网解析,效率低
- 外部用户能看到内网ip,容易被攻击
- 云厂商DNS服务容易出问题
- 持续扩大公司的技术影响力
站在企业角度考虑,我们需要的是那种DNS服务器?
权威DNS, localDNS(可选)
开源DNS: bind、nsd、knot、coredns
https
http明文传输,弊端明显
对称加密和非对称加密
- 对称加密:一份密钥
- 非对称加密:公钥和私钥
接入全站加速
- 源站容量问题: 增加后端机器扩容;静态内容,使用静态加速缓存
- 网络传输问题:动态加速DCDN
- 全站加速:静态加速+动态加速!
什么是4层负载均衡
- 基于IP+端口,利用某种算法将报文转发给某个后端服务器,实现负载均衡的落在后端·服务器
- 三个主要功能:
1.解耦vip和rs
2.nat
3.防攻击:syn proxy