復(fù)盤
天才不存在,只是有些人一開始就找到了正確的方式,而另外一些人直到最后都沿著錯誤路線走到底。那么開始復(fù)盤,從一道簡單的題開始:
1664.?生成平衡數(shù)組的方案數(shù)
給你一個整數(shù)數(shù)組?nums
?。你需要選擇?恰好?一個下標(biāo)(下標(biāo)從?0?開始)并刪除對應(yīng)的元素。請注意剩下元素的下標(biāo)可能會因為刪除操作而發(fā)生改變。
比方說,如果?nums = [6,1,7,4,1]
?,那么:
選擇刪除下標(biāo)?
1
?,剩下的數(shù)組為?nums = [6,7,4,1]
?。選擇刪除下標(biāo)?
2
?,剩下的數(shù)組為?nums = [6,1,4,1]
?。選擇刪除下標(biāo)?
4
?,剩下的數(shù)組為?nums = [6,1,7,4]
?。
如果一個數(shù)組滿足奇數(shù)下標(biāo)元素的和與偶數(shù)下標(biāo)元素的和相等,該數(shù)組就是一個?平衡數(shù)組?。
請你返回刪除操作后,剩下的數(shù)組?nums
?是?平衡數(shù)組?的?方案數(shù)?。
還記得吧,那個時候我說某道題很難,但是另一個同學(xué)說很簡單,然后復(fù)述了一遍老師的話,考試的時候它也沒做出來。所以我不想復(fù)制別人的想法,然后以為某件事很簡單,這里面一定要有自己的思考不然做這些題就沒有任何意義。
結(jié)果證明我的堅持沒有意義,我的想法總是存在漏洞,而且我還很難察覺,不知道錯在哪,更不愿意懷疑,模仿別人的思路也只是東施效顰。還是要自己想,但是要修正根本的部分。
這一題我的思路是暴力,對于每一個被刪除的位置而言,前面的下標(biāo)不變,后面的下標(biāo)奇偶會互換,枚舉每一個位置,用前綴和快速計算兩種下標(biāo)的和就行了。
首先,單獨思考每一個位置是正確的,從單個位置來思考這一點沒錯。然后這個位置前后兩種情況的分類討論就錯了。也不算全錯,但我單獨判斷了前后兩個子數(shù)組是否都是平衡數(shù)組,從這里開始就走遠(yuǎn)了,這里應(yīng)該從全局思考想辦法判斷整個數(shù)組,而不是拆成兩部分,這么做無形之中就把簡單的問題變復(fù)雜了。如果能夠跳出分別判斷前后這種思路的話,是能做出來的。
我突然發(fā)現(xiàn)漏洞所在了:前半部分跟后半部分都平衡的話,那么整體一定也是平衡的;但即使前半部分或后半部分某一個不是平衡數(shù)組,整體也有可能是平衡的。
問題出在我只思考了都平衡的情況,就開始順著這個思路走了。
這種也不是一次兩次了,好多事都是這樣,順著自己的思路總是不順利,模仿別人也只是一種偽裝,只是表皮級別的模仿,根本沒有觸及到問題的核心。
好麻煩啊,說的越多越覺得麻煩,但還是得一步一步思考,不能跳過任何一個步驟。還有就是,時不時回頭看看是不是從一開始就想錯了。
還有最重要的,沒有必要去模仿任何人的任何想法。
不管做什么唯一的途徑只有不停思考,練習(xí)。