BST
Basic Authentication
什么是 Basic Authentication?
Basic Authentication 是一种 HTTP 协议的认证方式,它使用用户名和密码对客户端进行身份验证。
RFC 2617 定义了 Basic Authentication 协议,它规定了客户端如何向服务器发送请求,以及服务器如何验证用户名和密码。
当用户试图访问受保护的资源时,服务器会判断 HTTP Header 中的 Authorization 字段是否包含有效的 Basic Authentication 认证信息。如果没有,服务器会返回 401 Unauthorized 状态码,要求客户端提供认证信息,并在响应头中添加 WWW-Authenticate: Basic 字段。
Battery svg
Posted on
Edited on
Binary Indexed Array
Definition
A Fenwick tree or binary indexed tree is a data structure that can efficiently update elements and calculate prefix sums in a table of numbers.
- update(index, delta): 将
delta加到index位置上。 - prefixSum(index): 求
sum[1, index]的值。 - rangeSum(from, to): 求
sum[from, to]的值。
时间复杂度:
- update(index, delta): 更新需要循环更新每一个
parent的值,从index开始到最后一个parent。复杂度为O(n)。 - prefixSum(index): 直接返回
sum[index + 1]即可,复杂度为O(1)。 - rangeSum(from, to): 直接返回
sum[to + 1] - sum[from]即可,复杂度为O(1)。
Build
现在有个nums初始数组,通过这个数组构造一个BITArray。
构造Binary Indexed Array。
- 实现
insert(index, delta):
1 | function insert(index, delta) { |
- 构造 BITArray:
1 | function MyArray(nums) { |
- 实现
sum(index):
1 | function sum(index) { |
- 实现
perfixSum(from, to)
1 | function perfixSum(from, to) { |