2019-11-15 16:25
面试的时候,常常会问数组和链表的区别,很多人都回答说,“链表适合插入、删除,时间复杂度O(1);数组适合查找,查找时间复杂度为O(1)”。实际上,这种表述是不准确的。数组是适合查找操作,但是查找的时间复杂度并不为O(1)。即便是排好序的数组,你用二分查找,时间复杂度也是O(logn)。所以,正确的表述应该是,数组支持随机访问,根据下标随机访问的时间复杂度为O(1)。
每一种编程语言中,基本都会有数组这种数据类型。不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构。尽管数组看起来非常基础、简单,但是我估计很多人都并没有理解这个基础数据结构的精髓。在大部分编程语言中,数组都是从0开始编号的,但你是否下意识地想过,为什么数组要从0开始编号,而不是从1开始呢? 从1开始不是更符合人类的思维习惯吗?带着这个问题来学习接下来的内容,带着问题去学习往往效果会更好!!!
...
2019-11-15 16:02
目录
主板
Intel芯片组主板
AMD芯片组主板
主板尺寸
关于品牌
CPU
关键参数
Intel CPU后面的数字
Intel CPU后面的字母
ADM CPU后面的数字
CPU天梯图
CPU的主要厂商
显卡
显卡品牌:N卡和A卡
关于品牌
核心显卡、主板集成显卡和独立显卡的区别
内存条
单通道与双通道
硬盘
机械硬盘
固态硬盘
电源
功率的选择
80Plus认证
模组选择
电源尺寸
关于品牌
散热器
散热器的工作原理
...
2019-11-15 16:49
目录
一 部署ETCD集群
1.1 安装ETCD
1.2 分发ETCD
1.3 创建etcd证书和密钥
1.4 分发证书和私钥
1.5 创建etcd的systemd
1.6 修改systemd相应地址
1.7 分发etcd systemd
二 启动并验证
2.1 启动ETCD
2.2 检查ETCD启动
2.3 验证服务状态
2.4 查看ETCD当前leader
回到顶部
一 部署ETCD集群
1.1 安装ETCD
etcd 是基于 Raft 的分布式 key-value 存储系统,由 CoreOS 开发,常用于服务发现、共享配置以及并发控制(如 leader 选举、分布式锁等)。kubernetes 使用 etcd 存储所有运行数据。
...
2019-11-15 16:30
2019杭州云栖大会上,高德地图技术团队向与会者分享了包括视觉与机器智能、路线规划、场景化/精细化定位、时空数据应用、亿级流量架构演进等多个出行技术领域的热门话题。现场火爆,听众反响强烈。我们把其中的优秀演讲内容整理成文并陆续发布出来,本文为其中一篇。...
2019-11-15 16:54
本文首发于公众号「五分钟学算法」,是图解 LeetCode 系列文章之一。
个人网站:https://www.cxyxiaowu.com
动态规划
1 概念
动态规划算法是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。在学习动态规划之前需要明确掌握几个重要概念。
阶段:对于一个完整的问题过程,适当的切分为若干个相互联系的子问题,每次在求解一个子问题,则对应一个阶段,整个问题的求解转化为按照阶段次序去求解。
状态:状态表示每个阶段开始时所处的客观条件,即在求解子问题时的已知条件。状态描述了研究的问题过程中的状况。
...
2019-11-15 16:21
作者 | 徐进茂(罗离) JAVA 开发工程师 ...
2019-11-15 16:42
马蜂窝技术原创内容,公众号 ID: mfwtech)
引言
消费者的狂欢节「双 11」刚刚过去。在电商竞争环境日益激烈的今天,为了抓住流量红利,双 11 打响的已经不仅仅是「促销战」,也是「营销战」,这对平台的技术支撑能力提出新的要求。
从 2014 年的「318 大促」,到正在进行的 「马蜂窝双 11 全球旅行蜂抢节」,马蜂窝旅游电商业务的大促已经走过 5 年时间,仅仅是双 11、暑期、十一黄金周、年终这些关键节点的 S 级促销就张罗了 50 多场,每年上线活动达几百个。
图:马蜂窝11.11全球旅行蜂抢节
...
2019-11-15 16:08
一、前言: 在c#数据结构中,集合的应用非常广泛,无论是做BS架构还是CS架构开发,都离不开集合的使用,比如我们常见的集合包括:Array、ArrayList、List、LinkedList等。这一些数据集合,在功能上都能够实现集合的存取,但是他们内部有什么区别,在使用时需要注意一些什么呢?下面根据个人的经验,对这一些集合数据的使用做一个简单的小结,如果说的不对的地方,欢迎指出,多多交流改进。...
2019-11-15 16:22
1. map的使用
golang中的map是一种数据类型,将键与值绑定到一起,底层是用哈希表实现的,可以快速的通过键找到对应的值。
类型表示:map[keyType][valueType] key一定要是可比较的类型(可以理解为支持==的操作),value可以是任意类型。
初始化:map只能使用make来初始化,声明的时候默认为一个为nil的map,此时进行取值,返回的是对应类型的零值(不存在也是返回零值)。添加元素无任何意义,还会导致运行时错误。向未初始化的map赋值引起 panic: assign to entry in nil map。
...
2019-11-14 16:58
前言: 早期学习了动态代理在实际开发中的使用场景和使用方法,我们也知道了最经典的mybatis的mapper就是采用动态代理来实现的,那么动态代理的背后是怎样的原理?为什么能实现动态代理?为什么动态代理只可以代理接口,而无法代理普通类?为什么动态代理需要传入类的classLoder和接口?带着这些疑问,我们来开启本期的主题:探究动态代理的内部原理。...
2019-11-14 16:04
目录
7.1.配置容器化应用程序
7.2.向容器传递命令行参数
7.2.1.待Docker中定义命令与参数
7.2.2.在kubernetes中覆盖命令行和参数
7.3.为容器设置环境变量
7.3.1.在容器定义中指定环境变量
7.3.2.在环境变量值中引用其他环境变量
7.4.利用ConfigMap解耦配置
7.4.1.ConfigMap介绍
7.4.2.创建ConfigMap
7.4.3.给容器传递ConfigMap条目作为环境变量
7.4.4.一次性传递ConfigMap的所有条目作为环境变量
...
2019-11-14 16:01
最近有个需求,实时统计pv,uv,结果按照date,hour,pv,uv来展示,按天统计,第二天重新统计,当然了实际还需要按照类型字段分类统计pv,uv,比如按照date,hour,pv,uv,type来展示。这里介绍最基本的pv,uv的展示。
id uv pv date hour
1 155599 306053 2018-07-27 18
关于什么是pv,uv,可以参见这篇博客:https://blog.csdn.net/petermsh/article/details/78652246
1、项目流程
...