LeetCode Hot1072 按列翻转得到最大值等行数 日常分类 题目地址思路:每次翻转一整列,然后经过N次翻转后,统计行数(一行中每个字母相同)。当存在规律相同的行的时候则相同列反转后都会变成字母相同例如(1010和0101,翻转后会变成1111,0000)。因此处理方法是找到矩阵中规律相同的行数;可以通过map key进行统计class Solution {
LeetCode Hot-17 电话号码的字母组合 日常分类 题目地址解题思路:排列组合+递归求解,递归每一位,当递归到最后一位的时候则添加字符串class Solution { Map<Character, String> map = new HashMap(); // 构建键盘按键 { map.put('2',&
LeetCode Hot-11 盛最多水的容器 日常分类 题目链接本题是典型的双指针应用场景。题目的要求是求取容积最大值,容积公式 area = Math.min(a,b) * Math.abs(b-a)初始的left = 0, right = len -1. 容积计算后,每次移动较短的一边(left++/right--).之所以移动较短边的原因是,容积公
LeetCode Hot100-9 回文数 日常分类 两个思路 1. 变成字符串然后进行双指针检查 2. 颠倒数字查看和原数字是否相等。简单题,没啥好说的ans1class Solution { public boolean isPalindrome(int x) { String s = Integer.toString(x);
LeetCode Hot100-8 字符串转换整数(atoi) 日常分类 这个题目,核心点在于判断乘和加的时候是否会溢出,总体而言是通过Integer.MAX_VALUE/10 和 a == Integer.MAX_VALUE/10时,下一位数字是否大于7 是否溢出Integer.MAX_VALUE = 2147483647Integer.MIN_VALUE = -214
LeetCode Hot-7 整数反转 日常分类 用了两种解法第一种朴素思路,将数字转化成大字符串,然后进行字符串颠倒,最后转回数字。如果转换出错,代表溢出(之前别的题解里看到的奇怪套路...)第二种稍微高效写的写法,利用取余公式获取最后一位数字,然后添加到另一个数字的个位上Code-1class Solution { public int
LeetCode Hot-6 N 字形变换 日常分类 水一下废话,这道题第一次遇到的时候不知道为什么想到的思路是找出数学规律。。。然后就花了很多时间,而且效果不好(太久没动脑,有点动不起来了hhh)。后面看了题解以后才发现其实有十分简单的办法。解题思路:给每个字符一个行号假定给定行数为num,当行号从1开始,一直递增到num,然后行号从num开始递减至
Java线程锁 技术分类 锁的本质是对于系统资源的锁定占有和释放,以此来控制代码在多线程模式下的执行顺序BlockingQueue 阻塞队列实现,有点类似于SemaphoreBlockingQueue foo = new BlockingQueue(1);BlockingQueue bar = new BlockingQue
ElasticStack 技术分类 ELK介绍ELK最初是三个开源组件的缩写(ElasticSearch/LogStash/Kibana),后来发展为以ElasticSearch构建的实时全文搜索技术栈ElasticStack。ElasticSearch(以下简称es)是基于Lucene开发的,基于倒排索引构建。倒排索引的意思就是非基