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