陣列分割,把陣列分割成和相等的兩部分--遞迴方法
// 陣列分割問題2.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <list>
using namespace std;
int getSum(int A[], int len)
{
int sum = 0;
for (int i = 0; i<len; i++)
{
sum += A[i];
}
return sum;
}
bool foo(int A[], int len, int curSum, int defSum, int B[], int curPos)
{
if (curSum == defSum)
{
return true;
}
if (len == 0)
return false;
bool bFound = false;
for (int i = 0; i < len; i++)
{
if (curSum + A[i] <= defSum)
{
B[curPos++] = A[i];
if (foo(&A[1], len-1, curSum+A[i], defSum, B, curPos))
{
bFound = true;
break;
}
B[curPos] = 0;
curPos--;
}
}
return bFound;
}
bool isSubsetSum(int Arr[], int len, int sum, int B[])
{
std::list<int> mList;
return foo(Arr, len, 0, sum, B, 0);
}
int _tmain(int argc, _TCHAR* argv[])
{
int Array[] = {1,3,5,7,6,8,4};
int sum = getSum(Array, sizeof(Array)/sizeof(Array[0]));
int B[10] = {0};
bool bSet = isSubsetSum(Array, 7, sum/2, B);
return 0;
}
相關文章
- 比較兩個陣列是否相等陣列
- js實現把textarea通過換行或者回車把多行數字分割成陣列,並且去掉陣列中空的值。JS陣列
- Javascript - 陣列和陣列的方法JavaScript陣列
- 【遞迴打卡1】在兩個長度相等的排序陣列中找到上中位數遞迴排序陣列
- 陣列分割陣列
- golang陣列分割Golang陣列
- join 分割陣列陣列
- 分割陣列的幾種方法比較陣列
- JS 兩組陣列取不同值組成新陣列的方法JS陣列
- 【遞迴打卡2】求兩個有序陣列的第K小數遞迴陣列
- 陣列迴圈陣列
- 陣列常見的遍歷迴圈方法、陣列的迴圈遍歷的效率對比陣列
- 一道遞迴陣列面試題遞迴陣列面試題
- JavaScript 的新陣列分組方法JavaScript陣列
- 陣列演算法-差分陣列陣列演算法
- 在迴圈陣列時使用splice()方法刪除陣列遇到的問題陣列
- 陣列的方法陣列
- js陣列迴圈方法對比JS陣列
- 移除陣列 arr 中的所有值與 item 相等的元素。不要直接修改陣列 arr,結果返回新的陣列陣列
- 陣列--移除陣列中指定的元素,不改變原陣列和改變原陣列陣列
- 陣列方法陣列
- golang中判斷兩個slice是否相等與判斷值下的 陣列是否相等Golang陣列
- 重寫陣列的方法(改變原陣列)陣列
- PHP 陣列搜尋 sdk & 陣列分頁PHP陣列
- 矩陣和陣列矩陣陣列
- 指標陣列和陣列指標與二維陣列指標陣列
- 2020-10-10 陣列和物件的區分方法陣列物件
- 陣列的常用方法陣列
- 陣列常用的方法陣列
- JS陣列的方法JS陣列
- 【Java】int[] 陣列 和 Integer陣列的轉換Java陣列
- php url傳遞陣列PHP陣列
- 判斷陣列裡面的json 物件是否相等,相等則移除陣列JSON物件
- java大陣列劃分為若干小陣列Java陣列
- PAT-B 1083 是否存在相等的差【陣列】陣列
- 字串和陣列常用方法整理字串陣列
- 陣列reduce()方法陣列
- 常用陣列方法陣列
- JavaScript陣列方法JavaScript陣列