力扣刷題記錄11

2021-10-11 08:03:07 字數 1342 閱讀 3711

有幾天沒有寫力扣了,這幾天事情實在有點多。聽了幾場就業的經驗分享,仔細想了一下自己的情況,決定放棄考研,去找個工作了。目標:寒假好好學習->春天找個好點的實習->秋招找個好點的工作。加油吧!

後面刷力扣會多做點題目,每天兩個簡單題找手感。

這個題目沒什麼說的,就是幾次遍歷。第一次算出所有元素和,然後存下來元素和除以3。還是和以前一樣,特殊情況直接返回false,這裡的特殊情況就是和不能整除3的情況。後面就是遍歷,每當當前累加的cursum不等於sum/3時,繼續迴圈。

這裡要注意兩個常規思維帶來的錯誤,第乙個是累加不一定使值增大,即迴圈退出條件應該是cursum= =sum/3而不是cursum>=sum/3,因為可能先增大後減小從而滿足條件。

另乙個就是cursum初始值不能為0,因為這樣當sum==0時會進不去迴圈。因此我將cursum設為a[i],即第乙個值,然後將i++:

class

solution

if(sum%3!=

0)return

false

;else

if(i>=n)

return

false;if

(smallsum==sum/3)

flag++;if

(flag==2)

return

true;}

}}};

這個題目和 31. 下乙個排列 十分相似,都是找字典序列,倒著按遞增或遞減一次尋找,這是個很好的辦法。下面的**就是這種思想。

swap可以多用,很方便。

注意swap交換的時候要排除相等的情況。

class

solution

if(end<0)

return a;

int i=end+1;

for(

;i(a[end]

!=a[i-1]

)swap

(a[end]

,a[i-1]

);else

swap

(a[end]

,a[i-2]

);return a;}}

;

分割陣列為連續子串行

這個題目開始看錯了。。。。十分難受。。。

看了題解

感覺題解的貪心演算法聽巧妙的,後面可以用這種思想來解決連續子串的問題。

class

solution

for(

auto

& x : nums)

else

else}}

}return

true;}

};

**為力扣題解。

力扣刷題記錄05

題目分類 二分查詢 時間 2020 09 09 題目一 兩數之和 兩數之和 ii 輸入有序陣列 給定乙個已按照公升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。說明 返回的下標值 ind...

力扣刷題記錄2

第一題是每日一題的簡單題。需要記的並不多,一是用迭代器對vector的一些基本操作。可以參考這裡 for vector iterator iter num.begin iter num.end iter 另外是快排的思想。這種思想實用性很廣,即使不需要排序,在找出最大的k個數,對陣列進行分割 以中間...

力扣刷題記錄10

三角形的最大周長 看到這個題目,我想到了排序後從最大的中挑選,但遇到了點困難,一方面是無法記錄哪個是最大的點,這樣每次都要判斷。另一方面是根據題目要求,每個數只能用一次,要記錄下當前哪些是已經被使用了的。看到題解之後感覺自己是個智障。class solution return0 下次貪心時候也要動動...