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

霧計算和邊緣計算對物聯網的意義何在?霧計算其響應更快,過濾信息,取決於網關靈活性,解決帶寬瓶頸和延遲問題霧計算將一些處理和資源置於雲的邊緣,它不是爲雲存儲和計算創建渠道,而是減小信息的發送下降對帶寬的需求,再在某些接入點進行聚合。經過使用這種分佈式策略,能夠下降成本並提升效率。

相關文章
相關標籤/搜索