写点什么

ARTS 打卡 第 26 周

用户头像
引花眠
关注
发布于: 2020 年 12 月 14 日

ARTS 简介

Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。


Algorithm

力扣(LeetCode)67. 二进制求和


给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。


示例 1:
输入: a = "11", b = "1"输出: "100"示例 2:
输入: a = "1010", b = "1011"输出: "10101"
复制代码


提示:


每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。 1 <= a.length, b.length <= 10^4 字符串如果不是 “0” ,就都不含前导零。


解题思路: 这道题如果可以直接将数字转化为 10 进制,可以简单获得答案,但是需要注意的是值如果过大,可能会超出 int 或 long 的范围, 也可以通过模拟加法操作来进行


class Solution {    public String addBinary(String a, String b) {        StringBuilder ans = new StringBuilder();        int loopLen = Math.max(a.length(), b.length());        int carry = 0;//以2为限制        for (int i = 0; i < loopLen; i++) {            int abit;            int bbit;            if (i < a.length()) {                abit = a.charAt(a.length() - 1 - i) - '0';            } else {                abit = 0;            }            if (i < b.length()) {                bbit = b.charAt(b.length() - 1 - i) - '0';            } else {                bbit = 0;            }            int tmp = abit + bbit + carry;            ans.append(tmp & 1);            carry = tmp / 2;        }        if (carry > 0) {            ans.append('1');        }        int tm = '0';        System.out.println(tm);        ans.reverse();        return ans.toString();    }}
复制代码


ps:参考资料


  1. 《剑指Offer:名企面试官精讲典型编程题(第2版)》

  2. labuladong 的算法小抄


Review

学习-微服务架构模式系列,网站地址是:https://microservices.io 微服务架构-Pattern: Externalized configuration 这篇文章的主要介绍了微服务架构下对横切关注点的处理:外部化配置 背景:使用微服务架构,可能会有很多第三方的组件,不同的环境需要配置不同的参数 问题:在不修改代码的前提下如何在不同的环境中运行


强制条件


  1. 使用配置的方式连接第三方服务

  2. 支持不同的环境

  3. 不同的环境不同的第三方服务


解决方法,外部化所有程序配置,程序启动时读取配置文件, 比如使用 springboot 的话,可以将配置外部化


好处


  1. 不重新编译或不修改的前提下,支持多环境


需要解决的问题


  1. 如何确保在合适的环境运行合适的配置


ps:《微服务架构设计模式》


Tips

记录我对于 Linux 的学习,网络管理的命令:


ps:“~” 表示为 home 目录,“.” 则是表示目前所在的目录,“…” 则表示当前目录的上一层目录 -h 用人类可读的格式展示(G(千兆字节),M(兆字节),K(千字节)),大部分命令有这个参数

free

free 用于显示内存状态,包括物理内存、交换内存(swap)和内核缓冲区内存 用法: free [选项] 选项:


  1. -b  以 Byte 为单位显示内存使用情况。

  2. -k  以 KB 为单位显示内存使用情况。

  3. -m  以 MB 为单位显示内存使用情况。

  4. -h  以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。

  5. o  不显示缓冲区调节列。

  6. -s<间隔秒数>  持续观察内存使用状况。

  7. -t  显示内存总和列。

  8. -V  显示版本信息。


#free            total       used       free     shared    buffers     cachedMem:       2054216    1917316     136900        260      40320     125036-/+ buffers/cache:    1751960     302256Swap:            0          0          0#free -h #用合适的单位显示使用情况             total       used       free     shared    buffers     cachedMem:          2.0G       1.8G       133M       260K        39M       122M-/+ buffers/cache:       1.7G       295MSwap:           0B         0B         0B
复制代码


Mem 一行指的是内存的使用情况-/+ buffers/cache    -/buffers/cache 的内存数,相当于第一行的 used-buffers-cached    +/buffers/cache 的内存数,相当于第一行的 free+buffers+cachedSwap 行是交换空间的使用情况
total 总内存数used 已经使用的内存数free 空闲的内存数shared 多个进程共享的内存总数buffers 缓冲内存数cached 缓存内存数
复制代码


不过在新的内核中,free 命令的输出发生了变化,比如:


#free            total        used        free      shared  buff/cache   availableMem:        1016060      542592      102148       29912      371320      240232Swap:             0           0           0
复制代码


没有了-/+ buffers/cache,并且buff/cache列合并了Mem 一行指的是内存的使用情况Swap 行是交换空间的使用情况
total 总内存数used 已经使用的内存数free 空闲的内存数shared 多个进程共享的内存总数buff/cache 缓冲内存数available 还可以被应用程序使用的物理内存大小
复制代码


Share

分享最近对的学习,这次分享的是SpringBoot 系列(6)- 测试,可能会有不足之处,之后会根据理解继续修改。


发布于: 2020 年 12 月 14 日阅读数: 18
用户头像

引花眠

关注

还未添加个人签名 2018.06.11 加入

还未添加个人简介

评论

发布
暂无评论
ARTS打卡 第26周