ARTS Week10
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指向了一个新的Dog对象,而第一个对象已经没有引用,变成了无法存取的。现在谁都没有办法访问到他,因为唯一一个指向他的引用已经抛弃他了。
再来看下面两段代码
虽然第二种方式看起来占用的内存比较少,但是却有个非常重大的缺陷。除了最后一个Contact对象之外,其他的都没有办法存取。
Share
这篇分享和Review一样,都是说怎么去学习编程,从哪里入手。想想一个金字塔。它的底面很大,但逐渐向顶部变小变细。所以学习编程基础的基础,基础是非常重要的东西,一切都从那里起飞。
记得我参加工作时一个前辈说过,如果我想找一个会不会某种机器的人,我会给他一些螺丝钉,让他说说这些都是在什么地方的。
扎实的基础知识使学习新语言和新技术变得更加容易。例如,花一点时间真正了解一种语言的核心概念,例如迭代,递归和抽象将对学习另一种语言有所帮助。简而言之,掌握基础知识可以带来很多收益,而没有损失。
评论