兩種方法解LeetCode和為s的連續正數序列

2021-10-04 19:45:18 字數 1607 閱讀 4288

題目描述

方法一:數學方法

頭一次自己想的方法不僅能通過,而且效率還挺高,先看一下數學方法的提交結果

其實思路也很簡單:分析題目可知得到的序列為等差數列,那我們只要知道每個序列的起始值以及序列的長度,我們就可以構造出整個序列,然後用乙個臨時的vector儲存此序列,最後將臨時的vector加入二維陣列(vectorres)即可

有了序列的長度n,又有了等差數列的和target,現在就可以求得數列的起始值,然後構造數列了。起始值s,數列長度n,目標值target三者滿足如下關係才可構造數列

( 2∗

s+n−

1)∗n

/2=t

arge

t\quad\quad\quad\quad\quad\quad(2*s+n-1)*n/2 = target

(2∗s+n

−1)∗

n/2=

targ

et

附上**:

vector

int>>

findcontinuoussequence

(int target)

res.

push_back

(temp);}

}return res;

}

方法二:滑動視窗

也挺好理解的,我就不寫分析過程了,參考題解:滑動視窗

int

getsum

(int left ,

int right)

return res;

}vector

int>>

findcontinuoussequence

(int target)

else

if(sum > target)

else

res.

push_back

(temp)

; left++

; right++;}

}return res;

}

不用每次呼叫getsum函式的**

vector

int>>

findcontinuoussequence

(int target)

else

if(sum > target)

else

res.

push_back

(temp)

; sum -

= left;

left++

;//視窗左邊界向右移動

right++

;//由於左邊界移動了,顯然右邊界也要向右移動

sum +

= right;}}

return res;

}

設定Activity為全屏的兩種方法

專案有時候需要把整個activity設定為全屏顯示,這裡為大家整理兩種方法。1.簡單粗暴直接在 中設定 requestwindowfeature window.feature no title 去掉標題欄 一定要在setcontentview 之後 setcontentview r.layout.s...

LCA兩種方法

lca least common ancestors 即最近公共祖先,是指在有根樹中,找出某兩個結點u和v最近的公共祖先。模板題 anc i j 表示第i個點的2 j的祖先的標號 整個過程就是兩個點往上跳到同一深度,再一起往上跳找到lca include include using namespac...

post get 兩種方法

a.定義乙個get函式 get url,headers none defget url,headers none return urlrequests url,headers headers 內部可以呼叫urlrequests 如果不寫headers headers會被預設為none b.定義乙個p...