cos

Java集合常见面试题

自作多情 提交于 2020-08-09 08:54:30
Java集合框架 集合框架底层数据结构总结 Arraylist 与 LinkedList 异同 是否保证线程安全 : ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全; 底层数据结构 : Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向链表数据结构; 插入和删除是否受元素位置的影响 : ① ArrayList 采用数组存储,所以插入和删除元素的时间复杂度受元素 位置的影响 。 比如:执行 add(E e) 方法的时候, ArrayList 会默认在将指定的元素追加到此列表的末尾,这种 情况时间复杂度就是O(1)。但是如果要在指定位置 i 插入和删除元素的话( add(int index, E element) )时 间复杂度就为 O(n-i)。因为在进行上述操作的时候集合中第 i 和第 i 个元素之后的(n-i)个元素都要执行向后位/向 前移一位的操作。 ② LinkedList 采用链表存储,所以插入,删除元素时间复杂度不受元素位置的影响,都是 近似 O(1)而数组为近似 O(n) 。 是否支持快速随机访问 : LinkedList 不支持高效的随机元素访问,而 ArrayList 支持。快速随机访问就是通 过元素的序号快速获取元素对象(对应于 get(int index) 方法)。 内存空间占用 :

再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Bluestein算法+分治FFT+FFT的优化+任意模数NTT)

空扰寡人 提交于 2020-08-08 20:55:14
再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Bluestein算法+分治FFT+FFT的优化+任意模数NTT) 目录 再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Bluestein算法+分治FFT+FFT的优化+任意模数NTT) 写在前面 一些约定 循环卷积 DFT卷积的本质 Bluestein’s Algorithm 例题 分治FFT 例题 FFT的弱常数优化 复杂算式中减少FFT次数 例题 利用循环卷积 小范围暴力 例题 快速幂乘法次数的优化 FFT的强常数优化 DFT的合并 IDFT的合并 形如$(A+B)(C+D)$的卷积的优化 卷积的终极优化 任意模数NTT 三模数NTT 拆系数FFT 写在前面 为了不使篇幅过长,预计将把基于论文的学习笔记分为三部分: DFT,IDFT,FFT的定义,实现与证明: 快速傅里叶变换(FFT)学习笔记(其一) NTT的实现与证明: 快速傅里叶变换(FFT)学习笔记(其二) 任意模数NTT与FFT的优化技巧 一些约定 \([p(x)]=\begin{cases}1,p(x)为真 \\ 0,p(x)为假 \end{cases}\) 本文中序列的下标从0开始 若 \(s\) 是一个序列, \(|s|\) 表示 \(s\) 的长度 若大写字母如 \(F(x)\) 表示一个多项式,那么对应的小写字母如 \(f\)

坐标系转换工具

这一生的挚爱 提交于 2020-08-08 17:44:55
开发处理过一些地图类项目,对坐标系转换做一些工具类 WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系, 谷歌地图采用的是WGS84地理坐标系(中国范围除外); GCJ02坐标系:即火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。 谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系; BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系 搜狗坐标系、图吧坐标系等,估计也是在GCJ02基础上加密而成的 北斗芯片获取的经纬度为WGS84地理坐标 swift版 class GPSTool { static let pi = 3.1415926535897932384626; static let a = 6378245.0 static let ee = 0.00669342162296594323 static let x_pi = pi * 3000.0 / 180.0 static func gps84_To_Gcj02(lon:Double, lat:Double) ->CLLocationCoordinate2D?{ if GPSTool.outOfChina(lon: lon, lat: lat) { return nil } var dLat

地图开发中WebGL着色器32位浮点数精度损失问题

若如初见. 提交于 2020-08-08 16:48:42
以下内容转载自木的树的文章《WebGL着色器32位浮点数精度损失问题》 作者:木的树 链接: https://www.cnblogs.com/dojo-lzz/p/11250327.html 来源:博客园 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 前言 Javascript API GL 是基于WebGL技术打造的3D版地图API,3D化的视野更为自由,交互更加流畅。 提供丰富的功能接口,包括点、线、面绘制,自定义图层、个性化样式及绘图、测距工具等,使开发者更加容易的实现产品构思。 充分发挥GPU的并行计算能力,同时结合WebWorker多线程技术,大幅度提升了大数据量的渲染性能。最高支持百万级点、线、面绘制,同时可以保持高帧率运行。 同步推出基于Javascript API GL的 位置数据可视化API库 ,欢迎体验。 问题 WebGL浮点数精度最大的问题是就是因为js是64位精度的,js往着色器里面穿的时候只能是32位浮点数,有效数是8位,精度丢失比较严重。 分析 在基础底图中,所有的要素拿到的都是瓦片里面的相对坐标,坐标范围在0-256之间。在每次渲染时都会重新实时计算瓦片相对中心点的一个偏移来计算瓦片自己的矩阵,这种情况下精度损失比较小,而且每个zoom级别都会加载新的瓦片,不会出现精度损失过大问题。 但是对于一些覆盖物,比如marker

PB级大规模Elasticsearch集群运维与调优实践

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-08 16:12:51
导语 | 腾讯云Elasticsearch 被广泛应用于日志实时分析、结构化数据分析、全文检索等场景中,本文将以情景植入的方式,向大家介绍与腾讯云客户合作过程中遇到的各种典型问题,以及相应的解决思路与方法,希望与大家一同交流。文章作者:bellen,腾讯云大数据研发工程师。 ​ 一、背景 某中型互联网公司的游戏业务,使用了腾讯云的 Elasticsearch 产品,采用 ELK 架构存储业务日志。 因为游戏业务本身的日志数据量非常大(写入峰值在 100w qps ),在服务客户的几个月中,我们踩了不少坑。经过数次优化与调整,最后将客户的 ES 集群调整得比较稳定,避免了在业务高峰时客户集群的读写异常,并且降低了客户的资金成本和使用成本。 二、与客户的初次交锋 解决方案架构师A:bellen, XX公司要上线一款新游戏,日志存储决定用 ELK 架构,他们决定在 XX云和我们之间二选一,我们首先去他们公司和他们交流一下,争取拿下! bellen: 好,随时有空! 随后和架构师一起前往该公司,跟负责底层组件的运维部门的负责人进行沟通。 XX公司运维老大:不要讲你们的PPT了,先告诉我你们能给我们带来什么! bellen:呃,我们有很多优势,比如可以灵活扩缩容集群,还可以一键平滑升级集群版本,并且提供有跨机房容灾的集群从而实现高可用...... XX公司运维老大:你说的这些别的厂商也有

【学习笔记】计算几何全家桶

你离开我真会死。 提交于 2020-08-08 04:31:21
【学习笔记】计算几何全家桶 本来是不想码的,但总是忘记一些基本操作,还是记下来比较好。 一:【准备工作】 #define LD double #define Vector Point #define Re register int const LD eps=1e-8;//据说:出题的大学生们基本上都是用的这个值 inline int dcmp(LD a){return a<-eps?-1:(a>eps?1:0);}//处理精度 inline LD Abs(LD a){return a*dcmp(a);}//取绝对值 struct Point{ LD x,y;Point(LD X=0,LD Y=0){x=X,y=Y;} inline void in(){scanf("%lf%lf",&x,&y);} inline void out(){printf("%.2lf %.2lf\n",x,y);} }; 二:【向量】 1.【模长】 对于 \(\vec{a}=(x,y),\) \(|\vec{a}|=\sqrt{x^2+y^2}\) \(=\sqrt{|\vec{a}|^{2}}\) \(=\sqrt{\vec{a} \cdot \vec{a}}\) 。 inline LD Len(Vector a){return sqrt(Dot(a,a));}//【模长】 2.【向量加减】 对于 \(

万物皆可 Serverless 之我的 Serverless 之路

女生的网名这么多〃 提交于 2020-08-08 04:29:25
缘起 本文来自 Serverless 社区用户「乂乂又又」投稿 我最早接触 Serverless 大概是在 18 年 6 月,那时候我在阿里云的学生机刚好到期,那台机子上我有装宝塔面板,然后在上面只放了一个 Typecho 的个人博客站,好像这台服务器似乎一直都是被我拿来当作虚拟主机用,最多也只是登上宝塔面板清一下内存这样子,所以,在我阿里云一年的学生机到期之后,我就果断选择了放弃续费服务器。从那时起我就变成了一个彻底的 Severlesser。 首先是之前的静态网页的问题,这个解决起来比较简单,随便找一个对象存储或者 pages 服务就可以搞定。 这里我是把自己那些静态网页都放到了 Coding pages 上,除了某些时候某些地区某些运营商的网络访问会不稳定之外,其他的一切都让我觉得 coding 的 pages 服务都是做的非常棒的。 然后是 Typecho 博客问题,这个问题还是比较让人头大的,因为像这种动态的博客系统是很少有 pages 服务支持的,所幸在那个时候 coding 有一个动态 pages 的服务是允许个人发布动态博客的,包括 Wordpress 和 Typecho 之类,只可惜现在 coding 已经把动态 pages 的服务给去掉了,而我的之前放在 coding 上的动态博客现在也已经被归档了。 我也错过了 cloud studio 升级的提醒通知

如何优雅地部署一个 Serverless Next.js 应用

落花浮王杯 提交于 2020-08-08 02:10:14
上一篇 前端福音:Serverless 和 SSR 的天作之合 ,详细介绍了 SSR 相关知识,同时也提到了 Serverless 给 SSR 方案带来的福利。但它只是将 Next.js 应用部署到 Serverless 服务上而已,并不适合实际生产业务。为此本篇专门针对 Next.js 的 SSR 方案进行了探索和优化,一步一步带大家了解,如何基于 Serverless 架构部署一个实际的线上业务。 抢先体验: serverless-cnode 本文主要内容: 如何快速部署 Serverless Next.js 如何自定义 API 网关域名 如何通过 COS 托管静态资源 静态资源配置 CDN 基于 Layer 部署 node_modules 如何快速部署 Serverless Next.js 由于本人对 Serverless Framework 开发工具比较熟悉,并且长期参与相关开源工作,所以本文均使用 Serverless Components 方案进行部署,请在开始阅读本文之前,保证当前开发环境已经全局安装 serverless 命令行工具。 本文依然上一篇中介绍的 Next.js 组件 来帮助快速部署 Next.js 应用到腾讯云的 Serverless 服务上。 我们先快速初始化一个 Serverless Next.js 项目: $ serverless create

Python 图像处理 OpenCV (5):图像的几何变换

一笑奈何 提交于 2020-08-07 19:57:01
前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python 图像处理 OpenCV (3):图像属性、图像感兴趣 ROI 区域及通道处理」 「Python 图像处理 OpenCV (4):图像算数运算以及修改颜色空间」 图像缩放 图像缩放只是调整图像的大小,为此, OpenCV 为我们提供了一个函数 cv.resize() ,原函数如下: resize ( src , dsize , dst = None , fx = None , fy = None , interpolation = None ) src 表示的是输入图像,而 dsize 代表的是输出图像的大小,如果为 0 ,则: dsize = Size(round(fx*src.cols), round(fy*src.rows)) \texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))} dsize = Size(round(fx*src.cols), round(fy*src.rows)) dsize 和 fx 、 fy 不能同时为 0 。 fx 、 fy 是沿 x 轴和 y 轴的缩放系数,默认取 0 时,算法如下:

2020牛客暑期多校训练营(第二场) Boundary

♀尐吖头ヾ 提交于 2020-08-07 16:43:23
传送门: Boundary 题意: 给你n个点的坐标,问最多有多少个点可以在同一个圆上,(0,0)必须在这个圆上。 题解: 三个点确定一个圆,所以暴力枚举两个点和(0,0)组成的圆,如果三个点不共线的话,用圆心公式求出圆心,然后用map记录以当前点为圆心的点圆的个数,边记录边判断有多少个圆圆心是同一个点,取最大值就好了。 1 #include<bits/stdc++.h> 2 #define ll long long 3 #define pb push_back 4 #define ft first 5 #define sd second 6 #define pii pair<int,int> 7 #define pll pair<ll,ll> 8 using namespace std; 9 10 const int maxn=2e6+ 10 ; 11 12 struct Point{ 13 double x,y; 14 }p[maxn]; 15 16 map<pair< double , double >, int > mp; 17 int ans= 0 ; 18 19 void solve(Point a,Point b,Point c) // 三点共圆圆心公式 20 { 21 double x=( (a.x*a.x-b.x*b.x+a.y*a.y-b.y*b.y)*(a.y