ARTS Week10

用户头像
时之虫
关注
发布于: 2020 年 08 月 02 日



Algorithm

扑克牌中的顺子

因为大小王的存在,组成顺子有三种情况:

5张牌都不包含大小王:[1, 2, 3, 4, 5]

5张牌包含一张大小王:[0, 2, 3, 4, 5]

5张牌包含两张大小王:[0, 0, 3, 4, 5]



可以看到,在没有大小王的情况下,能够组成顺子一定是不重复的5个数字,并且最大值减去最小值的差等于4,

如果包含大小王,那么在排除大小王(0)之外,最大值与最小值的差值一定小于等于4。

当然,我们还必须保证除了0之外,没有其他数字是重复的。如果有两张5,那么无论如何都不可能是顺子。



Review



Actionable advice to start learning to code

“做您热衷的事情”。开始进行编程,则需要这种内在动力。热情和兴趣可以帮助您在学习过程中保持一致和纪律。而且必须记住的是:这不是冲刺。这是一场漫长的马拉松比赛。不要指望一夜之间学到所有东西。不会那样。

保持学习。并不是说我们需要学习一切并压倒自己。我的观点是,新事物在技术世界中创造的速度如此之快,因此我们需要接受终身学习的思维方式。

谈论不堪重负,这里是技巧三:尽量不要让自己不知所措。您无需先从困难的概念开始,也不必从最繁琐的算法书籍开始。

我们不需要一开始就给自己设定看似不可完成的目标,这只会让你望而生畏,最终让你放弃。相反,我们可以设定一个简单的目标并尝试学习实现该目标的基础。避免完美主义,而去做。

练习是关键。找到学习概念并实践的方法。 这是技巧 用概念和理论建立基础很重要,但很实际。

为一名优秀的编码员的最佳方法是练习。



Tip

我们知道,事实上并没有对象变量这种东西存在。有的只是引用到对象的变量,它并不是对象的容器,而是类似指向对象的指针。

例如,

Dog dog = new Dog();



代表取得Dog对象的方法以字节形式放进变量中,而对象本身并没有放进变量中。



消失的引用



Dog dog = new Dog();
dog = new Dog();

当第二行的语句被执行后,dog指向了一个新的Dog对象,而第一个对象已经没有引用,变成了无法存取的。现在谁都没有办法访问到他,因为唯一一个指向他的引用已经抛弃他了。



再来看下面两段代码

Contact[] ca = new Contact[10];
int x = 0;
while (x < 10) {
ca[x] = new Contact();
x++;
}



Contact refc;
int x = 0;
while (x < 10) {
refc = new Contact();
x++;
}

虽然第二种方式看起来占用的内存比较少,但是却有个非常重大的缺陷。除了最后一个Contact对象之外,其他的都没有办法存取。



Share



How to be a great programmer



这篇分享和Review一样,都是说怎么去学习编程,从哪里入手。想想一个金字塔。它的底面很大,但逐渐向顶部变小变细。所以学习编程基础的基础,基础是非常重要的东西,一切都从那里起飞。

记得我参加工作时一个前辈说过,如果我想找一个会不会某种机器的人,我会给他一些螺丝钉,让他说说这些都是在什么地方的。

扎实的基础知识使学习新语言和新技术变得更加容易。例如,花一点时间真正了解一种语言的核心概念,例如迭代,递归和抽象将对学习另一种语言有所帮助。简而言之,掌握基础知识可以带来很多收益,而没有损失。



用户头像

时之虫

关注

还未添加个人签名 2020.05.25 加入

还未添加个人简介

评论

发布
暂无评论
ARTS Week10