Sum of array elements excluding the elements which lie between a and b
Given an array of N unique numbers. Also given two numbers a and b such that a will always be before b in the array. The task is to find the sum of the array elements excluding the elements which lie between a and b.
Examples:
Input : arr = [2, 1, 6, 9, 11], a = 6, b = 9
Output : 14Input : arr = [1, 2, 4, 5, 6], a = 2, b = 5
Output : 7
Approach: Traverse in the array, keep adding the array elements until we find a. Continue iteration until b is found and do not add array elements to the sum. After b is found, add array elements to the sum till the end. Once the iteration is completed, return the sum.
Below is the implementation of the above approach:
C++
// CPP implementation of above approach #include <bits/stdc++.h> using namespace std; // Function to find sum // of array excluding the // range which has [a, b] void sumexcludingrange(vector< int > li, int a, int b) { int sum = 0; bool add = true ; // loop in li int n = li.size(); for ( int i = 0; i < n; i++) { // if no != a then add if (li[i] != a && add == true ) sum = sum + li[i]; // mark when a // and b are found else if (li[i] == a) add = false ; else if (li[i] == b) add = true ; } // print sum cout << (sum); } // Driver Code int main() { vector< int > lis{ 1, 2, 4, 5, 6 }; int a = 2; int b = 5; sumexcludingrange(lis, a, b); } // This code is contributed by // Sahil_Shelangia |
Java
// Java implementation of above approach // Function to find sum // of array excluding the // range which has [a, b] import java.io.*; class GFG { static void sumexcludingrange( int li[], int a, int b) { int sum = 0 ; boolean add = true ; // loop in li for ( int i = 0 ; i < li.length; i++) { // if no != a then add if (li[i] != a && add == true ) sum = sum + li[i]; // mark when a // and b are found else if (li[i] == a) add = false ; else if (li[i] == b) add = true ; } // print sum System.out.print(sum); } // Driver Code public static void main(String[] args) { int lis[] = { 1 , 2 , 4 , 5 , 6 }; int a = 2 ; int b = 5 ; sumexcludingrange(lis, a, b); } } // This code is contributed // by anuj_67. |
Python3
# Python3 implementation of above approach # Function to find sum # of array excluding the # range which has [a, b] def sumexcludingrange(li, a, b): sum = 0 add = True # loop in li for no in li: # if no != a then add if no ! = a and add = = True : sum = sum + no # mark when a and b are found elif no = = a: add = False elif no = = b: add = True # print sum print ( sum ) lis = [ 1 , 2 , 4 , 5 , 6 ] a = 2 b = 5 sumexcludingrange(lis, a, b) |
C#
// C# implementation of above approach // Function to find sum // of array excluding the // range which has [a, b] using System; class GFG { static void sumexcludingrange( int [] li, int a, int b) { int sum = 0; bool add = true ; // loop in li for ( int i = 0; i < li.Length; i++) { // if no != a then add if (li[i] != a && add == true ) sum = sum + li[i]; // mark when a // and b are found else if (li[i] == a) add = false ; else if (li[i] == b) add = true ; } // print sum Console.Write(sum); } // Driver Code public static void Main() { int [] lis = { 1, 2, 4, 5, 6 }; int a = 2; int b = 5; sumexcludingrange(lis, a, b); } } |
Javascript
<script> // JavaScript implementation of above approach // Function to find sum // of array excluding the // range which has [a, b] function sumexcludingrange(li, a, b) { let sum = 0; let add = true ; // Loop in li for (let i = 0; i < li.length; i++) { // If no != a then add if (li[i] != a && add == true ) sum = sum + li[i]; // Mark when a // and b are found else if (li[i] == a) add = false ; else if (li[i] == b) add = true ; } // Print sum document.write(sum); } // Driver Code let lis = [ 1, 2, 4, 5, 6 ]; let a = 2; let b = 5; sumexcludingrange(lis, a, b); // This code is contributed by sravan kumar </script> |
Output
7
Time complexity: O(n)
Auxiliary space: O(1)
Please Login to comment...