【計劃執行報告】Day6 04-05 Leetcode上刷題的一天

Day6 04-05 Leetcode上刷題的一天

這是我:計劃執行的第6

1.今日感想

  1. 今天狀態有點不對,主要是藍橋杯的第10題真的想了好久,把中午之後的節奏打亂了,以至於沒有心思搞機器學習的有關內容了,於是今天大多數時間就用在久違的刷Leetcode題目上了。

2.計劃執行報告

2.1近期計劃(03-31-04-12)(有改動)

1.有所改動,貌似組內的大佬已經把所有工作承包了,而且報告日期推遲到了下週三,因此任務重心由“在4月12日之前準備好(推遲了)機器學習的最終報告——《暢想無監督學習》”變爲了補充機器學習所需的數學知識(線性代數與概率統計)
2.完成專業課的作業(流體機械能轉化、生物質能,新能源熱利用可以往後稍稍);
3.備戰藍橋杯,爲此:①1h左右的典型算法補充(不敢用這1小時刷題,真的是Time Killer);②程序設計知識補充:《程序員的面試筆記:C/C++、算法、數據結構篇》;③必要的練習與練題總結(比如時長1:30虛擬競賽)

2.2今日計劃表

今天節奏有點亂。
04-05

2.3實際時間分配

  1. 這是立計劃以來第一次花大量時間練題,效果不太理想(主要是自己還是太菜,簡單難度的題也要想很久,或許我不該點開Leetcode練習),6個小時內也就碰了4道題(包括藍橋杯的第十題),現在競技力還是很差的,當然這也是因爲自己學的方法還是太少。
  2. 今天的娛樂時間超了一點點(不小心點開了ig的比賽,一去不復返)
圖1 時間分配
圖2 目標達成情況

3. Leetcode刷題記錄

從記錄可見已經半年左右沒碰Leetcode了
在這裏插入圖片描述
目前還是挺菜的,一步一步來吧~

兩週後有幾場比賽,分別是藍橋杯校內模擬賽&Leetcode春季編程大賽(去年的秋季編程大賽貌似就AC了一題,還是簽到題,說多了都是淚),這兩週還是以補充知識爲主,練習爲輔,有針對性地練題,如果還像今天這樣隨機選題做真的會哭的。。。

最後附上我做的題與我的題解吧,具體的解答思路附了鏈接。

1. No.860 檸檬水找零

在這裏插入圖片描述
這種題目舉幾個例子模擬一下就好了(然而我還是耗了將近20min)
我的解答:

bool lemonadeChange(vector<int>& bills) {
        int counts[5]={0};
        for(int i=0;i<bills.size();i++){
            int cur=bills[i];
            counts[cur/5]++;
            if(cur==5) continue;
            else if(cur==10){
                if(counts[1]==0) //5
                     return false;
                counts[1]--;
            } 
            else if(cur==20){
                if(counts[2]>0&&counts[1]>0){//10 5
                    counts[2]--;
                    counts[1]--;
                } 
                else if(counts[1]>=3){
                    counts[1]-=3;
                }
                else
                    return false;
                    
            }    
        }
        return true;        
    }

2.No122. 買賣股票的最佳時機 II

在這裏插入圖片描述
這道題是我隨機隨出來的,我還特意搞了個錄屏錄下我的全部解答過程,結果裝X不成,最後只能投降。。。我是真沒想到把可以把這些作爲點畫在一張圖上,然後新世界地大門就敞開了(大量時間再想怎麼構造一個STE,然而有關DP的問題也只是碰過一兩道題就開始用,沒系統學的後果)。

看了題解的思路後寫的解答

    int maxProfit(vector<int>& prices) {
        if(prices.empty())
            return 0;
        int valley=prices[0];
        int peak=prices[0];
        int maximum=0;
        for(int i=0;i<prices.size();i++){
            while(i<prices.size()-1&&prices[i]>prices[i+1])
                i++;
            valley=prices[i];
            
            while(i<prices.size()-1&&prices[i]<prices[i+1])
                i++;
            peak=prices[i];

            maximum+=peak-valley;
        }
        return maximum;
        
    }

另外還有一題暫時沒做完,6個小時也就練了不到4題,效率極低,而且不是對點訓練,效果很差,之後的練題一定要結合近期所學的知識。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章