ARTS的初衷
- Algorithm:主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell。
- Review:主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。所以,需要你阅读并点评至少一篇英文技术文章,我个人最喜欢去的地方是http://Medium.com(需要梯子)以及各个公司的技术blog,如Netflix的。
- Tip:主要是为了总结和归纳你在是常工作中所遇到的知识点。学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。
- Share:主要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的技术文章。
作者:陈皓
链接:https://www.zhihu.com/question/301150832/answer/529809529
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Algorithm
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
i = 0
while i < len(nums) - 1:
if nums[i] == nums[i+1]:
nums.remove(nums[i])
else:
i += 1
return len(nums)
# 双指针
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
l = len(nums)
if l <= 1:
return l
i = 0
j = 1
while j < l:
if nums[i] == nums[j]:
j += 1
else:
i += 1
nums[i] = nums[j]
j += 1
return i+1
# 更优雅的双指针
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
if not nums:
return 0
slow = 0
for fast in nums:
if nums[slow] != fast:
slow, nums[slow] = slow+1, fast
return slow + 1
Tip
nginx的ssl配置是端口级别的,以排列在第一位的配置文件为准,也就是说conf/servers
下面排在前面的ssl配置打开了,端口的ssl会打开,排在前面的没打开,端口的也就没打开。
具体例子:
ls conf/servers
a.a.com
b.b.com
c.c.com
如果a.a.com
的443端口开启了ssl,那么b.b.com
和c.c.com
中就算没有配置也会同时开启ssl;如果a.a.com
的443端口没有开启ssl,即使在b.b.com
中配置了ssl on
,443端口也不会开启ssl。
新版本的nginx配置中,舍弃了ssl on
的方式,ssl配置建议显式地现在端口配置行:
listen 443 ssl