ARTS|Week 04 (2020 第 25 周)

发布于: 11 分钟前
ARTS|Week 04 (2020第25周)

ARTS是极客时间推出的一个打卡活动,通过100天的关于Algorithm、Review、Tip和Share的刻意训练,来实现进阶。

1. Algorithm

要求:每周至少做一个LeetCode算法题,为了编程训练和学习。

实际时间花费:90分钟

算法题目

算法题链接:[26. 删除排序数组中的重复项](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array)

给定一个排序数组,你需要在"原地"删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在"原地"修改输入数组并在使用O(1)额外空间的条件下完成。

题目分析

  1. 排序数组,数组内的元素是顺序增大,不会出现删除了重复数字后,又出现后面的数字和前面数字一样的情况。

  2. 方案:a. 不能开启新数组;b. 双指针碰撞,j走的比i快。

代码

我是通过Java 来对算法进行实现。

class Solution {
public int removeDuplicates(int[] nums) {
// 使用双指针
if(nums==null || nums.length == 1){
return nums.length;
}
// j>i, 表示j在i后面,始终走的比i快
int i = 0,j =1;
while(j<nums.length){
if(nums[i]==nums[j]){
j++;
}else{
i++;
nums[i]=nums[j];
j++;
}
}
return i+1;
}
}

2. Review

阅读并点评至少一篇技术文章,通过英文技术文章来学习英文。

实际时间花费:30分钟

文章链接:

我的点评

  1. 文中介绍了一种Jupyter kernel for SQLite——xeus-SQLite,可以进行复杂的SQLite数据展示和操作。

  2. 为了实现xeus-SQLite,开发者使用了tabulate、SQLiteCpp、Xeus、Vega等基础库进行开发。

  3. xeus-SQLite可以实现,SQLite数据的富文本展示,提供了增删改查的操作。

3. Tip

学习至少一个技术技巧,为了总结和归纳日常工作中遇到的知识点。

实际时间花费:10分钟

技巧

//查看_cat支持的信息
kibana: GET /_cat
bash: curl -XGET 'http://192.168.10.10:9200/_cat'
//查看主节点信息
kibana: GET /_cat/master?v
bash: curl -XGET 'http://192.168.10.10:9200/_cat/master?v'
//查看集群所有节点
kibana: GET /_cat/nodes?v
bash: curl -XGET 'http://192.168.10.10:9200/_cat/nodes?v'
//查看所有索引信息
kibana: GET /_cat/indices?v
bash: curl -XGET 'http://192.168.10.10:9200/_cat/indices?v'
//查看单个索引信息
kibana: GET /_cat/indices/movies?v
bash: curl -XGET 'http://192.168.10.10:9200/_cat/indices/movies?v'
//查看所有分片信息
kibana: GET /_cat/shards?v
bash: curl -XGET 'http://192.168.10.10:9200/_cat/shards?v'
//查看单个索引分片信息
kibana: GET /_cat/shards/movies?v
bash: curl -XGET 'http://192.168.10.10:9200/_cat/shards/movies?v'
//查看集群健康状态
kibana: GET /_cat/health?v
kibana: GET _cluster/health
bash: curl -XGET 'http://192.168.10.10:9200/_cat/health?v'
bash: curl -XGET 'http://192.168.10.10:9200/_cluster/health?pretty'
//查看插件
kibana: GET /_cat/plugins?v
bash: curl -XGET 'http://192.168.10.10:9200/_cat/plugins?v'
//查看所有索引文档总数
kibana: GET _all/_count
bash: curl -XGET 'http://192.168.10.10:9200/_all/_count?pretty'
//查看指定索引文档总数
kibana: GET movies/_count
bash: curl -XGET 'http://192.168.10.10:9200/movies/_count?pretty'
//查看所有模板
kibana: GET _cat/templates
bash: curl -XGET 'http://192.168.10.10:9200/_cat/templates?v'
//查看状态为绿的索引
kibana: GET /_cat/indices?v&health=green
bash: curl -XGET 'http://192.168.10.10:9200/_cat/indices?v&health=green'
//查看movies索引元数据
kibana: GET movies
bash: curl -XGET 'http://192.168.10.10:9200/movies?pretty'
//按照文档数量排序索引
kibana: GET _cat/indices?v&s=docs.count:desc
bash: curl -XGET 'http://192.168.10.10:9200/_cat/indices?v&s=docs.count:desc'
//查看各个索引占用内存大小并进行排序
kibana:
bash: curl -XGET 'http://192.168.10.10:9200/_cat/indices?v&h=i,tm&s=tm:desc'

4. Share

分享一篇有观点和思考的技术文章,为了建立影响力、输出价值观。

实际时间:40分钟

文章链接:Elasticsearch基本CURD操作

我的学习

  1. 文章很详尽地总结了ElasticSearch中,经常用到的CURD的操作。

  2. 给出了命令行(Bash)和页面操作(Kibana),两种形式的操作方式,便于读者对比。

  3. 同时给出了Bulk API 批量、MGET 批量读取、MSEARCH 批量查询等示例。

  4. 我们可以学习作者的行文方式,在写文章时尽可能的全面、细致,给出对比的操作。

  5. 可以将以上的代码片段进行总结,写入到SnippetsLab中,在以后用到时很快地搜索到。

发布于: 11 分钟前 阅读数: 2
用户头像

MiracleWong

关注

Hello World, Hello Miracle! 2017.10.24 加入

运维开发工程师!

评论

发布
暂无评论
ARTS|Week 04 (2020第25周)