インタビューの質問57 - IIと連続した正のポインタシーケンスsダブルGolangの数。

インタビューの質問57 - 。IIと連続した正のシーケンスの個数

正の整数ターゲット、すべての連続する正の整数の出力、および(少なくとも2つの数値を含む)標的配列を入力してください。

昇順で番号が最初の数字に応じて異なる配列の昇順に配列されています。

例1:

入力:目標= 9
出力:[[2,3,4]、[4,5]
実施例2:

入力:目標= 15
出力:[1,2,3,4,5]、[4,5,6]、[7,8]

制限事項:

1 <=目標<= 10 ^ 5

私の考え

この質問はまた、等差数列の和を使用することができますが、それは数学的な問題であり、そしてスキルをプログラミングすることは問題で、ここでは2ポインタは、理解しやすいものではありません。
I jに加え、右ポインタスライド上小さく、かつ大きな左ポインタ、出力のセットだけのスライドは、左ポインタをスライドさせました。

私の答え

func findContinuousSequence(t int) (ans [][]int) {
	i,j:=1,2
	for ;i<=t/2;i++{
		for ;;j++{
			if (i+j)*(j-i+1)>2*t{
				break
			}else if (i+j)*(j-i+1)==2*t{
				ans=append(ans,createSlice(i,j))
				break
			}
		}
	}
	return
}
func createSlice(i,j int) (ans []int) {
	for n:=i;n<=j;n++{
		ans=append(ans,n )
	}
	return
}
公開された38元の記事 ウォンの賞賛0 ビュー1037

おすすめ

転載: blog.csdn.net/Cyan1956/article/details/104691498