Mac的包管理工具Homebrew教程

2019-04-19
阅读 1 分钟
6.7k
简介 Homebrew是Mac系统的软件包管理工具,其功能类似Centos中的yum。 使用 环境依赖 64位的Intel CPU macOS 10.12或者更高版本的操作系统 Xcode命令行工具(安装方法:xcode-select --install) 与bourne bash兼容的shell,例如bash或者zsh 安装Homebrew {代码...} 卸载Homebrew {代码...} 更新Homebrew 需要注意这个指...

5030-节点与其祖先之间的最大差值

2019-04-14
阅读 2 分钟
2k
给定二叉树的根节点 root,找出存在于不同节点 A 和 B 之间的最大值 V,其中 V = |A.val - B.val|,且 A 是 B 的祖先。 (如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先) 示例: {代码...} 提示: 树中的节点数在 2 到 5000 之间。 每个节点的值介于 0 到 100000 之间。

5024-除数博弈

2019-04-14
阅读 1 分钟
2k
爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。用 N - x 替换黑板上的数字 N 。如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 true,否则返回 fa...

多线程批量数据导入示例——基础版

2019-04-03
阅读 4 分钟
4.9k
前言 当遇到大量数据导入时,为了提高处理的速度,可以选择使用多线程来批量处理这些处理。常见的场景有: 大文件导入数据库(这个文件不一定是标准的CSV可导入文件或者需要在内存中经过一定的处理) 数据同步(从第三方接口拉取数据处理后写入自己的数据库) 以上的场景有一个共性,这类数据导入的场景简单来说就是将数...

Springboot定时任务踩坑记录

2019-03-29
阅读 4 分钟
11.7k
后续通过翻查Springboot的文档以及打印日志(输出当前线程信息)得知问题是由于Springboot默认使用只有1个线程的单线程池处理定时任务。

Spring事件机制源码分析

2019-03-27
阅读 3 分钟
3.2k
由于之前使用Spring事件机制出现了问题,所以特意去了解这块的源码。Spring事件机制其实就是事件发布/订阅(注意在Spring中订阅指的是监听)。

Spring事件机制问题排查

2019-03-27
阅读 6 分钟
9.1k
当ApplicationEventPublisher批量推送ApplicationEvent时,如果ApplicationListener在处理的过程中抛出异常,则会导致后续的推送中断。

简单实用的布隆过滤器

2019-03-25
阅读 1 分钟
1.6k
前言 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。 布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。 而在Java中有个BitSet(位向量),我们可以基于BitSet实现一...

ArrayList常见问题

2019-03-19
阅读 1 分钟
1.9k
ArrayList的默认初始长度是多少?最大长度是多少?ArrayList的默认初始长度是10,是由DEFAULT_CAPACITY设定的。 由于ArrayList底层是用Object数组存储元素,所以ArrayList最大长度为Integer.MAX_VALUE,即2147483647(2)。这里需要注意常量MAX_ARRAY_SIZE(Integer.MAX_VALUE - 8)并不是ArrayList真正的最大长度,原因可以...

synchronized锁了什么

2019-03-14
阅读 3 分钟
6.7k
synchronized翻译为中文的意思是同步的,它是Java中处理线程安全问题常用的关键字。也有人称其为同步锁。既然是锁,其必然有锁的东西,下面先会简单介绍一下synchronized,再通过一个示例代码展示synchronized锁了什么。(这里先提前透露答案synchronized锁的是代码)

iview-admin多环境配置打包

2019-03-06
阅读 2 分钟
7.4k
由于目前我在公司已经搭建了Jenkins来进行一键系统发布,同时存在测试和生产两套环境。但是目前iview-admin是不支持的,只好自己进行改造了。

1003-检查替换后的词是否有效

2019-03-03
阅读 2 分钟
2.2k
给定有效字符串 "abc"。 对于任何有效的字符串 V,我们可以将 V 分成两个部分 X 和 Y,使得 X + Y(X 与 Y 连接)等于 V。(X 或 Y 可以为空。)那么,X + "abc" + Y 也同样是有效的。 例如,如果 S = "abc",则有效字符串的示例是:"abc","aabcbc","abcabc","abcabcababcc"。无效字符串的示例是:"abccba","ab","c...

1002-查找常用字符

2019-03-03
阅读 2 分钟
2.4k
给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。 你可以按任意顺序返回答案。 示例1: {代码...} 示例2: {代码...} 提示: 1 <= A.length <= 100 1 &l...

高效随机数算法Java实现

2019-02-18
阅读 12 分钟
5.1k
前言 事情起源于一位网友分享了一个有趣的面试题: 生成由六位数字组成的ID,要求随机数字,不排重,不可自增,且数字不重复。ID总数为几十万。 初次解答 我一开始想到的办法是 生成一个足够大的ID池(其实就是需要多少就生成多少) 对ID池中的数字进行随机排序 依次消费ID池中的数字 可惜这个方法十分浪费空间,且性能...

HashMap剖析之put()和get()方法

2019-02-14
阅读 10 分钟
7.9k
由于Java 1.7和Java 1.8的HashMap的HashMap中的put()和get()方法在实现上差异很大,所以本文将于分别分析这两个版本的put()和get()f方法

HashMap剖析之内部结构

2019-02-11
阅读 2 分钟
1.9k
HashMap使用拉链法解决哈希表中存在的哈希冲突问题,所以HashMap底层是用以Node(Java 7名称是Entry)组成的链表为元素的数组table来存储键值对,每个Node就是一个键值对对象。table称呼为散列表。

989-数组形式的整数加法

2019-02-10
阅读 2 分钟
2k
对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。 给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。 示例1: {代码...} 示例2: {代码...} 示例3: {代码...} 示例4: {代码...} 提示: 1 <= A.length <= 10000 0 <= A[i] ...

988-从叶结点开始的最小字符串

2019-02-04
阅读 2 分钟
2.6k
给定一颗根结点为 root 的二叉树,书中的每个结点都有一个从 0 到 25 的值,分别代表字母 'a' 到 'z':值 0 代表 'a',值 1 代表 'b',依此类推。 找出按字典序最小的字符串,该字符串从这棵树的一个叶结点开始,到根结点结束。 (小贴士:字符串中任何较短的前缀在字典序上都是较小的:例如,在字典序上 "ab" 比 "aba" ...

985-查询后的偶数和

2019-02-03
阅读 3 分钟
1.7k
给出一个整数数组 A 和一个查询数组 queries。 对于第 i 次查询,有 val = queries[i][0], index = queries[i][1],我们会把 val 加到 A[index] 上。然后,第 i 次查询的答案是 A 中偶数值的和。 (此处给定的 index = queries[i][1] 是从 0 开始的索引,每次查询都会永久修改数组 A。) 返回所有查询的答案。你的答案应...

986-区间列表的交集

2019-02-03
阅读 2 分钟
3.3k
给定两个由一些闭区间组成的列表,每个区间列表都是成对不相交的,并且已经排序。 返回这两个区间列表的交集。 形式上,闭区间 [a, b](其中 a <= b)表示实数 x 的集合,而 a <= x <= b。两个闭区间的交集是一组实数,要么为空集,要么为闭区间。例如,[1, 3] 和 [2, 4] 的交集为 [2, 3]。) 示例: {代码...}...

981-基于时间的键值存储

2019-01-27
阅读 3 分钟
2.3k
创建一个基于时间的键值存储类 TimeMap,它支持下面两个操作: set(string key, string value, int timestamp) 存储键 key、值 value,以及给定的时间戳 timestamp。 get(string key, int timestamp) 返回先前调用 set(key, value, timestamp_prev) 所存储的值,其中 timestamp_prev <= timestamp。 如果有多个这样的...

974-和可被K整除的子数组

2019-01-13
阅读 1 分钟
3k
给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。 示例: {代码...} 提示: 1 <= A.length <= 30000 -10000 <= A[i] <= 10000 2 <= K <= 10000

976-三角形的最大周长

2019-01-13
阅读 1 分钟
2.8k
给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。 如果不能形成任何面积不为零的三角形,返回 0。 示例1: {代码...} 示例2: {代码...} 示例3: {代码...} 示例4: {代码...} 提示: 3 <= A.length <= 10000 1 <= A[i] <= 10^6

973-最接近原点的 K 个点

2019-01-13
阅读 2 分钟
3.7k
我们有一个由平面上的点组成的列表 points。需要从中找出 K 个距离原点 (0, 0) 最近的点。 (这里,平面上两点之间的距离是欧几里德距离。) 你可以按任何顺序返回答案。除了点坐标的顺序之外,答案确保是唯一的。 示例1: {代码...} 示例2: {代码...} 提示: 1 <= K <= points.length <= 10000 -10000 < p...

970-强整数

2019-01-06
阅读 2 分钟
2.7k
给定两个非负整数 x 和 y,如果某一整数等于 x^i + y^j,其中整数 i >= 0 且 j >= 0,那么我们认为该整数是一个强整数。 返回值小于或等于 bound 的所有强整数组成的列表。 你可以按任何顺序返回答案。在你的回答中,每个值最多出现一次。 示例1: {代码...} 示例2: {代码...} 提示: 1 <= x <= 100 1 <...

965-单值二叉树

2018-12-30
阅读 1 分钟
2.4k
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。 示例1: {代码...} 示例2: {代码...} 提示: 给定树的节点数范围是 [1, 100]。 每个节点的值都是整数,范围为 [0, 99] 。

962-最大宽度坡

2018-12-23
阅读 2 分钟
2.9k
给定一个整数数组 A,坡是元组 (i, j),其中 i < j 且 A[i] <= A[j]。这样的坡的宽度为 j - i。 找出 A 中的坡的最大宽度,如果不存在,返回 0 。 示例1: {代码...} 示例2: {代码...} 提示: 2 <= A.length <= 50000 0 <= A[i] <= 50000

961-重复 N 次的元素

2018-12-23
阅读 1 分钟
3.2k
在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。 返回重复了 N 次的那个元素。 示例1: {代码...} 示例2: {代码...} 示例3: {代码...} 提示: 4 <= A.length <= 10000 0 <= A[i] < 10000 A.length 为偶数

958-二叉树的完全性检验

2018-12-16
阅读 2 分钟
3.3k
给定一个二叉树,确定它是否是一个完全二叉树。 百度百科中对完全二叉树的定义如下: 若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(注:第 h 层可能包含 1~ 2h 个节点。) 示例1: {代码...} 示例2: {代码...} 提示: 树...

953-验证外星语词典

2018-12-09
阅读 2 分钟
3k
某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。 给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的单词在这种外星语中按字典序排列时,返回 true;否则,返回 false。 示例1: {代码...} 示例2: {代码...} 示例3: {代码...} 提示: 1 &...