Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,894 questions

51,825 answers

573 users

How to check if a vector contains a contiguous subarray having zero-sum in C++

1 Answer

0 votes
#include <iostream>
#include <vector>

bool hasZeroSumSubarray(std::vector<int> &arr) {
	int size = arr.size();

	for (int i = 0; i < size; i++) {
		int sum = arr[i];
		int startIndex = i;
		if (sum == 0) {
			return true;
		}
		for (int j = i + 1; j < size; j++) {
			sum += arr[j];
			int endIndex = j;
			if (sum == 0) {
				std::cout << "index from: " << startIndex << " to: " << endIndex << std::endl;
				return true;
			}
		}
	}
	return false;
}

int main()
{
	std::vector<int> arr = {8, 32, 4, -5, 1, 9};

	bool hasZeroSum = hasZeroSumSubarray(arr);

	if (hasZeroSum) {
		std::cout << "The array contains a contiguous subarray with zero-sum" << std::endl;
	}
	else {
		std::cout << "The array does not contain a contiguous subarray with zero-sum" << std::endl;
	}
}





/*
run:

index from: 2 to: 4
The array contains a contiguous subarray with zero-sum

*/

 



answered Sep 8, 2023 by avibootz
...