Pyenv + virtualenv 版本管理

不同项目可能需要不同版本的 Python 和独立的依赖环境。Pyenv 可用于管理多个 Python 版本,而 pyenv-virtualenv 是其插件,用于管理虚拟环境。通过 Pyenv + pyenv-virtualenv,可以在同一台主机上切换 Python 版本并为每个项目创建独立的虚拟环境,避免依赖冲突。

Golang 单例模式

单例模式是最简单的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

意图: 保证一个类型仅有一个实例,并提供一个访问它的全局访问点。
主要解决: 一个全局使用的类型频繁地创建与销毁。
何时使用: 当您想控制实例数目,节省系统资源的时候。
如何解决: 判断系统是否已经有这个单例,如果有则返回,如果没有则创建。

什么是容器?

容器是一种操作系统虚拟化技术,内核功能的集合,提供给应用独立的运行环境,并实现资源的控制和隔离。Docker 不等同于容器,容器历史要比Docker 长得多。

1154. 一年中的第几天

题目描述

给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。请你计算并返回该日期是当年的第几天。

通常情况下,我们认为 1 月 1 日是每年的第 1 天,1 月 2 日是每年的第 2 天,依此类推。每个月的天数与现行公元纪年法(格里高利历)一致。

说明

date.length == 10
date[4] == date[7] == '-',其他的 date[i] 都是数字
date 表示的范围从 190011 日至 20191231

示例

输入:date = "2019-01-09"
输出:9

输入:date = "2019-02-10"
输出:41

输入:date = "2003-03-01"
输出:60

输入:date = "2004-03-01"
输出:61

475. 供暖器

题目描述

冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。

在加热器的加热半径范围内的每个房屋都可以获得供暖。

现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。

说明:所有供暖器都遵循你的半径标准,加热的半径也一样。

说明

1 <= houses.length, heaters.length <= 3 * 104
1 <= houses[i], heaters[i] <= 109

示例

输入: houses = [1,2,3], heaters = [2]
输出: 1
解释: 仅在位置2上有一个供暖器。如果我们将加热半径设为1,那么所有房屋就都能得到供暖。

输入: houses = [1,2,3,4], heaters = [1,4]
输出: 1
解释: 在位置1, 4上有两个供暖器。我们需要将加热半径设为1,这样所有房屋就都能得到供暖。

输入:houses = [1,5], heaters = [2]
输出:3

34. 在排序数组中查找元素的第一个和最后一个位置

题目描述

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值 target,返回 [-1, -1]。

说明

0 <= nums.length <= 105
-109 <= nums[i] <= 109
nums 是一个非递减数组
-109 <= target <= 109

示例

输入:nums = [5,7,7,8,8,10], target = 8
输出:[3,4]

输入:nums = [5,7,7,8,8,10], target = 6
输出:[-1,-1]

输入:nums = [], target = 0
输出:[-1,-1]

29. 两数相除

题目描述

给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。
整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2

说明

被除数和除数均为 32 位有符号整数。 除数不为 0。
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。本题中,如果除法结果溢出,则返回 231 − 1。

示例

输入: dividend = 10, divisor = 3
输出: 3
解释: 10/3 = truncate(3.33333..) = truncate(3) = 3

输入: dividend = 7, divisor = -3
输出: -2
解释: 7/-3 = truncate(-2.33333..) = -2