写点什么

【ARTS 打卡】Week02

用户头像
Rex
关注
发布于: 2020 年 06 月 07 日

Algorithm

class SolutionRemoveDuplicates
{
public function removeDuplicates(&$nums) {
$length = count($nums);
if ($length <= 1) {
return $length;
}
// 双指针思路,$i为慢指针,$j在前为快指针
for ($I = 0, $j = 1; $j < $length; $j ++) {
//
if ($nums[$j] != $nums[$I]) {
// 递增慢指针,并拷贝快指针对应值给慢指针
$I++;
$nums[$I] = $nums[$j];
}
}
return $I + 1;
}
}

Review

  • Why Go is a powerful language to learn as a PHP developer 这篇文章说,对于PHP程序员而言,Go语言是个很好的补充,且是个有用的高性能的语言,是非常值得PHP程序员学习的语言。作者原是个PHP程序员,也用Java做过开发,他在文章中简要介绍了Go的特性,例如goroutines、defer等,以及于PHP/C/C++/Java做了些对比,这些语言各有所长。对于PHP而言,Go是个很好的补充,尤其是在并发和高性能等方面。

Tip

Share

  • “组合”与“聚合”的差别

  • 软件模型里的元素间的常见关系3组:关联与依赖、组合与聚合、继承与实现,之前对“组合与聚合”的差别有些模糊。现在把它稍作整理

  • 共同点:两者都是表达整体与部分的关系,多个对象可合为一个对象。

  • 差别:组合强调“整体”与“部分”的生命周期是一致的,例如“用户信息”这个整体,有两个部分组合而成,分别是用户基本信息对象(id,phonenum,email)、扩展信息对象(ip,clienttype),那两者就是组合关系,因为销毁用户信息对象后,基本信息和扩展信息也需要销毁,扩展信息没有必要单独存在。

  • 而聚合强调的是整体与部分是可以分开的,生命周期可以不一致。例如用户的作品集合,与用户的文章、短视频关系,脱离用户的作品集合,文章或视频可以单独存在。



发布于: 2020 年 06 月 07 日阅读数: 45
用户头像

Rex

关注

还未添加个人签名 2018.06.14 加入

还未添加个人简介

评论

发布
暂无评论
【ARTS打卡】Week02