#前言
之前的话自己从家里搬了出来,到了一个能自己静下来专心学习技术的环境。离毕业的日子也一天天地接近。这里的话给自己定了『三月之约』,想要在三月前能够准备好去互联网公司的面试,时间正好是三月春分的日子。每天会开始记录今日的练习以及涉及到的技术,对思路进行一个复盘。我的日常计划会包括主要三点:1. 解决新的问题(平台在PTA或者Leet code上)2. 知识扩展(平台主要来源于阅读github上的代码和只是框架推荐)3.应用实践(关于这一点,我的想法是在学了新的知识之后专门找这一类的练习题或者阅读有关使用到的项目等等,需要进一步落实)
然后在方法上,解决的问题的时候现在我决定革新,在iPad上面开始练习手写代码,然后再打印到电脑上进行最后的尝试,查看是否正确。
每天早上我就会打开今天的技术日志,执行三步计划,每执行完一步,我就把日志更新,最后在一天结束的时候把日志发表出来。
然后目前来说,针对实践和软件开发设计来说,基础的知识包分为语言和基础四大件。
我现在学的是C++,接下来的模块是『数据结构和算法』,『操作系统』,『计算机网络』和『设计模式』,当然,学长提到的其他知识模块还包括『数据库』『前端』『数据』等等,如果学得是另外一门语言java估计行走的道路又会比较不同叭。
一步步走吧,现在的目标是能够拿到某家互联网公司的offer,至少可以独当一面不成为家里人的负担叭。
所以目前来说针对『需要应试』的这一需求,我得到的情报是,『数据结构和算法』会是重中之重,应对策略就是早日开始的话会比较好。准备晚上咨询一下学长再进行部署。接下来开始今天的学习和练习叭。
#日记
- 问题解决:
(1)龟兔赛跑(PTA-基础编程题目-7-22)
这个问题我的思路是,我意识到兔子和乌龟的运行规律像是两个不同的数学函数模型,乌龟的话行走距离是一个稳定的d=3t,这个东西的变量仅仅是依赖于时间,而兔子不同,兔子的函数分段且依赖于乌龟。我的想法是,这两家伙的函数加在一起有种三角函数的味道,就是每过多少分钟他们总会在一个点遇上然后一起前进,然后之前的规律就又会重复一次。后来分段函数花时间太多我没写出来,去问学长,学长看了这个问题,直接说『你用一个循环来模拟每一分钟发生了啥不就行了』,这估计就是计算机思维和数学思维的区别叭。
接下来是我的两种解法。
第一种:用循环模拟出每一分钟实况发生了什么,设一个计数器N,每一分钟N加一,然后当N等于输入的时候,循环停止,比较结果,然后给出输出。 实现(1):
第二种:把这个函数进行分类,得知这两个函数其实组合起来应该有一个周期,也就是说,在一个时间点t乌龟和兔子又重新碰面了。然后所有的时间都可以余这个t然后剩下的时间就是在这个周期里的固定表现。 这个时候我们只要通过分类找出目前两个家伙表现如何就行了。