什么是同源策略同源策略是指在浏览器中,允许某个网页的脚本访问另一个网页的数据(如Cookie),但前提是这两个网页必须是同源的,同源指的是两个网页协议相同,域名相同,端口相同。同源策略可防止某个网页的恶意脚本,访问另一网页上的敏感数据,保证用户信息的安全。假设A网站是一家银行,用户登录以后,又去浏览其他网站。如果其他网站可以读取A网站的Cookie,因为Cookie往往是我们登录的凭证,这种...
之前有一个需求,根据当前司机的坐标经纬度,搜索出距离当前司机位置5公里的货源。这是一类很常见的需求,比如附近的人,附近的电影院等等。第一个能想到的方法是,计算出所有货源与司机的距离,然后返回距离小于5公里的货源。但这种方法的问题是,如果整个系统的货源数量很大,算法的时间复杂度是O(n)。Redis自从3.2开始,基于geohash和zset提供里地理位置相关的功能。georadius就是那个...
之前写过一篇关于Go内存分配的文章 - Go内存分配,讲的是Go堆内存的申请过程。对象除了可以在堆上分配,还有一个我们很熟悉的地方可以分配,栈。栈内存分配每一个协程都有自己的栈,协程访问栈的对象时,不需要加锁等同步操作。下面是一个例子:调用main函数,Go在栈上分配内存调用square函数,Go在栈上分配内存当square执行完返回main时,上一步调用square时,分配的内存不会被回收...
问题在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2 输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。解答求第K个最大元素用最小堆,构建一个最多包...
问题输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1 输出:[0]限制:0 <= k <= arr.length <= 10000 0 ...