Algorithm
题目:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入:123输出:321
示例 2:
输入:-123输出:-321
示例 3:
输入:120输出:21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
我的解法:
class Solution {
public int reverse(int x) {
String numStr = (x + "").replace("-","");;
String[] nums = numStr.split("");
numStr = "";
for (int i = nums.length-1; i >= 0 ; i--) {
numStr += nums[i];
}
long longNum = Long.valueOf(numStr);
if(x<0){
longNum = longNum * (-1);
}
if(longNum > Integer.MAX_VALUE || longNum < Integer.MIN_VALUE){
return 0;
}else {
return (int)longNum;
}
}
}
推荐解法:
class Solution {
public int reverse(int x) {
int rev = 0;
while (x != 0) {
int pop = x % 10;
x /= 10;
if (rev > Integer.MAX_VALUE/10 || (rev == Integer.MAX_VALUE / 10 && pop > 7)) return 0;
if (rev < Integer.MIN_VALUE/10 || (rev == Integer.MIN_VALUE / 10 && pop < -8)) return 0;
rev = rev * 10 + pop;
}
return rev;
}
}
Review
ElasticSearch,全文搜索引擎,介绍了其中的TermQuery。
1.termQuery的作用:精确查询;简单理解为完全匹配,全词匹配。
2.boost参数可以为TermQuery中查询的关键词设置不同的权重,使其相关性评分更高。
3.TermQuery也支持对Range datatypes(范围型数据)查询,如数字、日期。
4.如果想要全文搜索时用MatchQuery。简单记就是:查询时是否分词,如“中国人民”,不分词它就是“中国人民”一个词,分词以后就是“中国”、“人民”两个词去匹配。
5.关于分词:
5.1 创建或更新文档时,对文档进行分词处理
5.2 查询时,会对查询语句进行分词
(以上分词通过通过index mapping设置search_analyzer实现 ,通常情况下使用搜索引擎都会分词,比较常用的分词器是ik分词器,es自己也有内置的分词器)
6.正排索引:文档id到单词的关联关系 倒排索引:单词到文档id的关联关系)
Tip
linux常用的几个命令:
1.将A服务器上的文件复制到B服务器,该命令在B服务器执行,IP为A服务器IP
scp 99.99.99.99:/home/aaa/xxxxx.zip /home/aaa/
2. 查看端口占用
netstat -anp |grep 3306
netstat -ano|grep "3306" | wc -l 端口占用线程数
3.查看物理内存占用
sudo du -ah --max-depth=1
Share
这篇文章用简单易懂的语言讲述了内存模型的基本概念以及 volatile关键字的作用,如何使用,应用场景。
文章稍长,建议挑个空闲时间,仔细看看。
https://www.cnblogs.com/dolphin0520/p/3920373.html?tdsourcetag=s_pctim_aiomsg
网友评论