陣列組合問題

2021-09-23 22:39:50 字數 2147 閱讀 3832

求乙個陣列序列的所有連續子串行(時間複雜度為o(n3))

private

static

void

continsubstring

(int

nums)

result.

add(thissubstring);}

} system.out.

println

(arrays.

aslist

(result));

}

求乙個陣列中n個數的所有組合

public

static

void

main

(string[

] args)

; system.out.

println

(arrays.

aslist

(combine

(nums,2)

));}

private

static list

combine

(int

nums,

int count)

private

static

void

combinehelper

(int

nums,

int count,

int pos, list

thiscombine, list

res)

for(

int i = pos; i < nums.length; i++

)}

求乙個陣列的所有組合

將上面的程式main函式體改為

for

(int i =

1; i <= nums.length; i++

)

4.1. 分治法求最大連續子串行和(o(nlogn))(為方便起見,若序列所有數均為負數,則最大子串行和為0,下同)

public

static

void

main

(string[

] args)

; system.out.

println

(maxsubsum

(nums));

}public

static

intmaxsubsum

(int

nums)

private

static

intmaxsumrec

(int

nums,

int left,

int right)

else

}int center =

(left + right)/2

;int maxleftsum =

maxsumrec

(nums, left, center)

;int maxrightsum =

maxsumrec

(nums, center +

1, right)

;int maxleftbordersum =0;

int leftbordersum =0;

for(

int i = center; i >= left; i--)}

int maxrightbordersum =0;

int rightbordersum =0;

for(

int i = center +

1; i <= right; i++)}

return math.

max(math.

max(maxleftsum, maxrightsum)

, maxleftbordersum + maxrightbordersum)

;}

4.2. 線性時間求最大連續子串行和(o(n))

public

static

intmaxsubsum

(int

nums)

else

if(thissum <0)

}return maxsum;

}

陣列(組合數學)

fabdec 有 個長度為 n 的陣列 a 下標 1 n 初始時都是 0。fabdec 隨機了 個 1 到 n 的隨機數 x,並且把 a x fabdec 重複了 m 次這樣的操作,然後數了 下陣列 共有 k 個位置 為奇數。fabdec 現在想問執 m 次操作,總共能 成多少種不同的陣列使得恰 好...

MS SQL 分組組合字段

有很多時候需要將同組資料合併串起來顯示,可以利用 for xml path 例如 create table student studentname varchar 50 classname varchar 50 insert into student select 小明 英語 union selec...

Noip2016提高組 組合數問題problem

day2 t1 題目大意 告訴你組合數公式 其中n!1 2 3 4 5 n 意思是從n個物體取出m個物體的方案數 現給定n m k,問在所有i 1 i n 所有j 1 j min i,m 的 i,j 滿足cji是k的倍數的個數。輸入樣例 2 5 兩個數,第乙個數t表示該資料有t組詢問,第二個為k,接...