8.3day04git+数据结构

这篇具有很好参考价值的文章主要介绍了8.3day04git+数据结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git版本控制学习

一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码
作用:记录代码内容,切换代码版本,多人开发时高效合并代码内容

安装git软件8.3day04git+数据结构,数据结构,git

如何创建git仓库
将本地文件夹转换成git仓库
从其他服务器上面拷贝git文件

创建git本地仓库
git@gitee.com:z-zhou-xin/sky_take_out.git
8.3day04git+数据结构,数据结构,git

高性能的单机管理主机的心跳服务

看了如何将408课程运用起来,设计一个高性能的单机管理主机的心跳服务
,不是很能看得懂

原链接小林coding
8.3day04git+数据结构,数据结构,git

这是设计系统的架构图
需要设计一个识别机器无法工作的程序。

心跳服务的功能就是发现宕机的主机和发现上线的主机

算法设计
不能采用暴力遍历的方式来寻找超时的主机,时间复杂度很高,心跳包开源用双向链表来设计,构成先入先出的队列。
8.3day04git+数据结构,数据结构,git

双向队列的好处是,有新的包直接添加到队尾,头部是最老的心跳包,距现在是否超过设定的秒数,如果超过,则认为宕机了,然后将讲其从双链表中删除

如何在队列中找到旧的心跳包? 由于数据结构是双向链表,直接删除需要寻找时间复杂度是ON,随着队列元素变多了,效率也会变低。

查询效率最高的就是哈希表了,时间复杂度O(1),可以用来优化

哈希表 key表示对应的ip地址,value包含主机在双向链表中的节点。8.3day04git+数据结构,数据结构,git
这样,每当收到心跳包时,先判断其在不在哈希表里。

如果不存在哈希表里,说明是新主机上线,先将其插入到双向链表的尾部,然后将该主机的 IP 作为 Key,主机在双向链表的节点作为 Value 插入到哈希表。

如果存在哈希表里,说明主机已经上线过,先通过查询哈希表,找到该主机在双
向链表里旧的心跳包的节点,然后就可以通过该节点将其从双向链表中删除,最后将新的心跳包插入到双向链表的队尾,同时更新哈希表。

如果超时了,需要将其从哈希表和双链表中都要删除,那么双链表就需要存储一个键值对key -value key是主机的ip,value是主机的信息;

最终的设计图,采用双链表是为了删除的更快。
8.3day04git+数据结构,数据结构,git

下面来实现高并发和传输协议不是看的太懂;

算法题

leetcode 722删除代码中的注释文章来源地址https://www.toymoban.com/news/detail-635296.html

import java.util.ArrayList;
import java.util.List;

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public List<String> removeComments(String[] source) {
       //删除对应的注释

         // //块注释直接忽略右边的所有内容

        // /* */ 忽略注释块以内的内容

        // 注释的优先级 第一个注释优先于后来的任意注释
        // 当不出来块注释的情况下

        //出现块注释的标志 /*,然后开启块注释,中间都可以忽略

        //出现行注释标志,就忽略这一行

        //不再注释内的保留下来,用StringBuilder进行拼接

        List<String> res=new ArrayList<>();

        StringBuilder sb=new StringBuilder();

        boolean blockCom =false;

        int sIdx; //遍历单个字符串的索引
        int sLen; //单个字符串的长度

        char curChar;
        char nextChar;
        for (String s:source) {
            sLen=s.length();
            sIdx=0;
            while (sIdx < sLen) {
                curChar= s.charAt(sIdx++);
                nextChar = sIdx < sLen ? s.charAt(sIdx) : ' ';
                if (blockCom) {
                    if (curChar == '*' && nextChar == '/' && blockCom) {
                        blockCom = false;
                        sIdx += 1;
                    }
                } else {
                    if (curChar == '/' && nextChar == '*') {
                        blockCom = true;
                        sIdx += 1;
                    } else if (curChar == '/' && nextChar == '/') {
                        //如果是行注释 就直接删除
                        break;
                    } else {
                        sb.append(curChar);
                    }
                }
            }
                if (!blockCom && sb.length() > 0) {
                    res.add(sb.toString());
                    sb = new StringBuilder();
                }
        }
          return  res;
    }
}

到了这里,关于8.3day04git+数据结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构基础day9

    解法1:哈希表 解法2:哈希表+滑动窗口+位运算 好长,不想看 解法1:暴力解法 遍历每一个子串,当其是回文子串且长度最大,存储初始位置和长度。 时间复杂度O(n^3),空间复杂度O(1) 解法2:动态规划 相当于在暴力解法的基础上空间换时间,时间复杂度O(n^2),空间复杂度O

    2024年02月11日
    浏览(29)
  • 数据结构day05(单链表)

    今日任务:  思维导图: 实现 代码:(多文件) head.h fun.c main.c 不好,眼花了,没看到实现单项循环链表,ji

    2024年02月11日
    浏览(23)
  • 数据结构day08(树、算法)

    今日任务: 二叉树: 今日思维导图 链接: 快排:快速排序法(详解)_李小白~的博客-CSDN博客图画挺好啊 常见款:https://www.runoob.com/w3cnote/quick-sort.html  

    2024年02月10日
    浏览(29)
  • 数据结构的练习day1

    链表只能一个一个的遍历,不能通过随机访问来获取节点 链表的地址是并要求连续的,是通过内部的指针来进行联系的

    2024年04月22日
    浏览(23)
  • day32 泛型 数据结构 List

     概述         JDK1.5同时推出了两个和集合相关的特性:增强for循环,泛型         泛型可以修饰泛型类中的属性,方法返回值,方法参数, 构造函数的参数 Java提供的泛型类/接口 Collection, List, Set,Iterator 等 自定义的泛型 public class Student H,W {} 自定义的泛型方法 public

    2024年02月09日
    浏览(28)
  • 数据结构day07(栈和队列)

    今日任务 head.h fun.c main.c 运行效果: 今日思维导图

    2024年02月10日
    浏览(29)
  • 数据结构day1(2023.7.13)

       练习1:static(全局变量、局部变量作用域)  练习2:判断变量处于用户空间的哪个区  练习3:在堆区申请连续的n个空间,实现循环输入,循环输出 、释放空间  练习4:数据定义与数据类型  练习5:typedef小练  定义字符指针,分别指向堆区空间,计算字符串的长度 要

    2024年02月16日
    浏览(30)
  • 数据结构day5(2023.7.19)

      双向链表的插入与删除:    练习1:单链表任意元素删除 练习2: 单链表任意元素查找 练习3: 单链表逆置 练习4:单链表排序(冒泡排序) 练习5: 单链表释放 练习6:单向循环链表节点创建  练习7:单向循环链表头插  练习8:单向循环链表的尾插 练习9:单向循环链

    2024年02月16日
    浏览(24)
  • 数据结构day2(2023.7.15)

      练习1:定义车的信息:品牌,单价,颜色,车牌号 练习2:间接定义变量按顺序初始化 练习3: 间接定义变量不按顺序初始化 练习4: 间接定义变量,单个赋值 练习5: 间接定义变量,输入赋值 练习6:直接定义变量按顺序初始化 练习7:直接定义变量不按顺序初始化 

    2024年02月16日
    浏览(30)
  • 数据结构day8(2023.7.25)

    排序:把无需序列转换为有序序列的一种算法。 内排:在计算机内存中实现的排序算法【多用适用于数据量较小的情况】 外排:在计算机内存以及外部介质实现的排序算法【先内存,在外部】 排序的分类: 交换排序:冒泡排序、快速排序 插入排序:直接插入排序,希尔排

    2024年02月15日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包