Find subarray with given sum
2014-03-17 20:37
211 查看
问题:Given an unsorted array of integers, find a continous subarray which adds to a given number.
注意:数组中有正有负。
参见:http://stackoverflow.com/questions/5534063/zero-sum-subarray
注意:数组中有正有负。
参见:http://stackoverflow.com/questions/5534063/zero-sum-subarray
#include<cstdio> #include<map> #include<string.h> using namespace std; bool findsub(int A[], int n, int target, int &left, int &right) { if(n == 0) return false; multimap<int, int> sum; int *tmp = new int[n+1]; //tmp[i] 表示前i项之和 tmp[0] = 0; for(int i=1;i<=n;i++) { tmp[i] = tmp[i-1] + A[i-1]; sum.insert(pair<int,int>(tmp[i], i)); } int i; for(i=0;i<=n;i++) { multimap<int, int>::iterator it = sum.find(tmp[i] + target); if(it == sum.end()) continue; for(;(*it).first == tmp[i] + target;it++) { right = (*it).second; if(right <= i) continue; left = i+1; return true; } } return false; } int main() { int A[10002]; int n, target; int left, right; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) scanf("%d", &A[i]); scanf("%d",&target); if(findsub(A, n, target, left, right)) printf("%d %d\n",left, right); else printf("No\n"); } return 1; }
相关文章推荐
- Given an array of positive and negative integers find the first subarray with zero sum
- Find subarray with given sum
- Find subarray with given sum
- 在二叉搜索树里,寻找两个节点 Find a pair with given sum in a Balanced BST
- Smallest subarray with sum greater than a given value
- Given a tree, find the node with the minimum sum of distances to other nodes
- Data Structure Array: Find if there is a subarray with 0 sum
- Smallest subarray with sum greater than a given value
- Maximum Subarray with Sum/ Multiply
- Find K Pairs with Smallest Sum
- Unable to find a team with the given Team ID 问题解决方法
- Maximal Square,Given a 2D binary matrix filled with 0's and 1's, find the largest squar
- 【Leetcode】Given a binary tree, find all root-to-leaf paths whose sum equals a given number
- Given a int array, please find the sub array wich has maximum sum, return the index, length and sum
- Find a number in the array having least difference with the given number (n)
- 26.打印所有和为S的连续正整数序列[FindContinuousSequencesWithSumS]
- Implement Find and replace (find given pattern and replace it with a given string)
- *Find All Repeating Substring With Given Length
- Subarray Sum to the given target value
- [Twitter] Given a matrix with all elements sorted on each individual row and column find