ARTS(第一周)

Algorithm

LeetCode 145. Binary Tree Postorder Traversalnode

后序遍历二叉树git

Given a binary tree, return the postorder traversal of its nodes' values.github

Example:web

Input: [1,null,2,3]算法

1
    \
     2
    /
   3

Output: [3,2,1]
Follow up: Recursive solution is trivial, could you do it iteratively?编程

迭代版本数据结构

class Solution {
    public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> result = new ArrayList<>();
        Stack<TreeNode> s = new Stack<>();
        TreeNode p = root;
        // 记录上一次被访问的节点
        TreeNode q = null;
        do{
            //先找到最左下角的节点,记录沿途的位置
            while(p!=null){
                s.push(p);
                p = p.left;
            }
            q = null;
            while(!s.isEmpty()){
                p = s.pop();
                //BCA的访问次序,若是上一次访问了C,那么A就是该访问的节点
                if(p.right == q){
                    result.add(p.val);
                    q = p;
                }else{
                    //二次进栈
                    s.push(p);
                    p = p.right;
                    break;
                }
            }
            
        }while(!s.isEmpty());
        return result;
    }
}

Review

The Key To Accelerating Your Coding Skills
主题为提高编码技能的关键,首先提出得到解决问题的能力比开发一些应用更加剧要。数据结构和算法

指导阶段,3-8周,入门阶段啥都不懂

起步阶段的学生,最重要的是关注细节
根据错误信息调试很重要,
随着经验增加,能够学会解读错误信息,抽取相关问题细节,从错误问题中学习经验,不要只是修复完就算了。
刚开始可能须要问别人,后面能够google或者追踪代码。
编程是终身学习的过程,有经验的工程师会为了解决未解决的问题而不断去学习,只等待是无用的。
learn-to-code-1.jpg分布式

大师失败的次数比菜鸟尝试的次数还要多得多!

进入下个阶段前,你有以下的特征:
你见过了足够多的错误了,而且它们再也不困扰着你
你已经熟悉用google搜寻答案了
你能够将你的代码遵循必定规则应用到其余的地方了post

拐点阶段,2-4周,正确的思惟方式

最使人困扰的阶段,根据指导,没有现成的方法解决你的问题
困扰的缘由是:
编码速度比上个阶段慢了10-20倍
剩余的日子,天天都要突破你的限制,不要待在温馨区

关于web开发,有两个转折点会一同到来
不要作个CRUD BOY,试试整合第三方的库
学好数据结构和算法
它们是编程王国的钥匙

招聘主管喜欢扎实基础的算法和开发工程师
不要追寻热点技术,基础扎实学起来都快
变得依赖本身,不要等着别人来帮助

写代码时候,想一想以前是否写过相似的,能否借鉴
视频吞掉了细节,查看API文档更加快速

尽量有效的度过拐点阶段

指导阶段,作一些没有指导的任务
尽量少的使用指导
文档假设你已是度过拐点的开发者,适量阅读遵循github文档对你更有帮助
重点关注重要且频繁使用的事情
要明白这是困难的阶段,放轻松你本身
若是你缺少自信,找那些度过拐点的人聊聊,坚持学习,但不要太大负担,一天不要超过6小时,不然会加长这个阶段的时间。
最好获取自信的方法是解决困惑你的问题,若是你挣扎了15个小时,那么以后就会平静下来
若是5分钟或者5小时没思路,你会有困扰,可是你成功的次数多了,你的自信心会迅速增加

如何知道本身度过了拐点阶段

拐点度过以后是接受如下的事实:
软件开发是持续的学习(还得学……)
若是你以为本身对全部都掌握了,那么应该解决更复杂的问题了

Tip

使用VSCode来开发Java

Share

雾计算和边缘计算对物联网的意义何在?雾计算其响应更快,过滤信息,取决于网关灵活性,解决带宽瓶颈和延迟问题雾计算将一些处理和资源置于云的边缘,它不是为云存储和计算创建渠道,而是减小信息的发送下降对带宽的需求,再在某些接入点进行聚合。经过使用这种分布式策略,能够下降成本并提升效率。

相关文章
相关标签/搜索