ARTS 薪火重启之第三周
Algorithm
力扣题目:34, 35, 69, 367
这次一口气做了四道主要是跟二分查找有关的算法题。这次想要讲一下二分法的知识。
二分查找法的使用前提:
数组必须为有序数组,并且数组中无重复元素。如果一旦出现重复元素,使用二分查找反悔的元素下标可能不是唯一的。所以二分查找在查找算法里并不是万能的。
写法:
首先需要定义你的分区去区间[left, right]。如果写代码的话应该是[0, length-1]。
当我们进行查找的时候需要不断的遍历数组的中间的元素,并判断是否跟目标元素相同。在这里我使用了 while 循环
while(l<=r)
这句话的意思是:当左边的下标大于右边的下标时,肯定有一个下标已经越界了。所以可以断定没有找到目标。然后在 while 循环里面需要算出中心的位置 mid,这里我用的是(l+r)/2。
判断中心位置 mid 的数值跟目标是否一致,如果小于目标值的话证明我们要找的目标是在左边的区间也就是[l, mid-1]这个位置。同理如果大于的话就是[mid+1, r]这个位置。
不断的遍历知道退出
以上就是二分查找的思路了。虽然明白了思路但是如果不尝试的话难免会出错哦。所以大家可以做一下上面的力扣题巩固一下。
Review
文章链接:DevOps Minimum — Linux. This is my take on what you should… | by Flavius Dinu | Aug, 2023 | Medium
大致内容:
文章介绍了为了成为一名 DevOps 工程师,在 Linux 上您应该至少知道的内容:
Linux 文件系统和结构:涉及到了根目录、文件类型、路径及 PATH 变量、文件权限的基本知识。
命令行基础:介绍了一系列基本命令,如 ls, cd, cat 等,用于文件操作、文本处理和网络工具。
包管理:不同的 Linux 发行版有自己的包管理器,如 Debian/Ubuntu 的 apt-get 或 apt,RedHat/CentOS 的 yum 或 dnf 等。
进程管理:说明如何使用命令和工具(例如 ps, top, htop 和 kill)来列出、结束和优先处理进程。
VI:VI 是几乎所有 UNIX 系统上默认可用的文本编辑器。
用户和组管理:熟悉如何添加、删除和修改用户和组,以及理解/etc/passwd 和/etc/group 文件。
Shell 脚本:使用 bash 进行基本的脚本编写可以自动化许多任务。
日志:理解日志文件通常存储在哪里(例如/var/log/)以及协助阅读它们的工具。
网络基础:理解基本的网络概念,如 IP 地址、子网、端口和协议。
Secure Shell (SSH):SSH 对于远程管理至关重要。
磁盘和存储:了解如何查看磁盘使用情况、管理分区和文件系统、以及挂载/卸载存储设备。
心得:
读完这一篇文章,我发现很多我都明白但是却没有深入理解过我准备按照文章的顺序深入的研究一下 linux。因为在用 devops 写 pipeline 的时候大多是用到了 linux 的系统以及在实际的开发中使用 linux 也是很多。所以 linux 对于开发者来说值得学习!
Tips
分享一个给云服务器创建缓存 swap 的技巧。
使用 dd 命令创建一个用来当缓存的文件
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
设置正确的权限呢
sudo chmod 600 /swapfile # 为了安全,只有 root 用户可以读写
把文件转化为 swap
sudo mkswap /swapfile
启用 swap
sudo swapon /swapfile
查看 swap 信息
free -m # 显示内存和swap的使用情况
Share
现在是 2023 年也是大模型的元年,以 chatgpt 为主的 AI 智能层出不穷。我也深深的受到了它的影响,我现在工作的时候对于 chatgpt 的依赖很大,我认为使用 chatgpt 会提高写代码的效率以及提高安全水平,另外还有一个很主要的好处就是可以提高效率。chatgpt 实实在在的解决了我好多的问题,我也希望大家多多了解多多使用。
评论