陣列拆分為兩個子陣列

2021-08-22 16:33:14 字數 1220 閱讀 6276

怎麼把乙個陣列拆分成兩個非空的子陣列,而且如果兩個陣列裡的元素能夠一一對應,那麼不論順序如何,都認為是重複的:例如和是一樣的。

輸入例子:

1,2,3
輸出例子:

1 :2

32 :1

3//1 3:2也一樣

3 :1

2

輸入例子:

1 2 2
輸出例子:

1:2

2//2 2: 1

2:12

//2 1: 2

1.遞迴求解,去重

bool isrepeat(const

vector

>&res, const

vector

& src, vector

& v1, vector

& v2)

return

false;

}//把乙個陣列拆分成不為空的兩個,返回第一部分的list:

void splitarray(vector

>&res,vector

& src,vector

v1,vector

v2,int index) );

cout

<< ":";

for_each(v2.begin(), v2.end(), (int a) );

cout

<< endl;

}return;

}int len = src.size();

if (len < 2)return;

v2.push_back(src[index]);

splitarray(res,src,v1,v2,index+1);

v1.push_back(src[index]);

v2.pop_back();

splitarray(res,src,v1,v2,index+1);

}int main(void)

sort(v.begin(),v.end());

splitarray(vv,v,vector

(), vector

(),0);

system("pause");

return

0;}

複雜度很高。。。

求思路。。。

求兩個子陣列最大的累加和

來自牛客網左程雲演算法第二堂課第一題 問題 給定乙個陣列,其中當然有很多的子陣列,在所有兩個子陣列的組合中,找到相加和最大的一組,要求兩個子陣列無重合的部分。最後返回累加和。要求 時間複雜度達到 o n 解法 我們很容易想到將整個陣列分成兩個部分,然後分別求這兩個部分子陣列的最大累加和。將結果累加起...

求兩個子陣列最大的累加和

最近在學習演算法,發現左神左程雲講的是真的好,相見恨晚,推薦大家去學習。題目 給定乙個陣列,其中當然有很多的子陣列,在所有兩個子陣列的組合中,找到相 加和最大的一組,要求兩個子陣列無重合的部分。最後返回累加和。要求 時間複雜度達到 o n 這道題要想做的順利,首先我們先需要知道乙個演算法原型,也就是...

將字串拆分為陣列

根據符號分string s1 sdsad,3232 222.ssss string s2 s1.split foreach string s3 in s2 console.readkey 去除空字元 string s4 aa,bb,cc,dd,string s5 s4.split new char,...