• Skip to primary navigation
  • Skip to content
  • Skip to primary sidebar
  • Skip to secondary sidebar

GoHired

Interview Questions asked in Google, Microsoft, Amazon

Join WeekEnd Online Batch from 4-April-2020 on How to Crack Coding Interview in Just 10 Weeks : Fees just 20,000 INR

  • Home
  • Best Java Books
  • Algorithm
  • Internship
  • Certificates
  • About Us
  • Contact Us
  • Privacy Policy
  • Array
  • Stack
  • Queue
  • LinkedList
  • DP
  • Strings
  • Tree
  • Mathametical
  • Puzzles
  • Graph

Sequence Finder Dynamic Programming

January 28, 2018 by Dhaval Dave

Sequence Finder

Given two arrays A and B of equal size, you have to determine whether the following the sequence is possible or not.



i.e for n=2, out of the sequences –

  • A[0] + A[1]
  • A[0] – B[1]
  • – B[0] + A[1]
  • – B[0] – B[1]

Whether a sequence with 0 (zero) value is possible or not.

Solution:

The question may look hard at first, but the solution just requires some modeling. Let’s see with the help of an example, suppose we have n=4 and the following sequence has value zero,

A[0] – B[1] – B[2] + A[3] = 0

Now take the B[ ] terms to RHS

A[0] + A[3] = B[1] + B[2]

Now add the missing A[ ] terms with same indices as B[ ] to both sides

A[0] + A[1] + A[2] + A[3] = A[1] + B[1] + A[2] + B[2]

Or

A[0] + A[1] + A[2] + A[3] = ( A[1] + B[1] ) + ( A[2] + B[2] )

Or

A[0] + A[1] + A[2] + A[3] = T[1] + T[2]    (Here- T[i]=A[i]+B[i])

Or

Summation of A[ ] = Summation of some terms of T[ ]

Or

Summation of A[ ] (CONSTANT) = Summation of a subset of T[ ]

 

Thus we have reduced our complicated summation problem to a problem of Subset Sum problem which can solved using Dynamic programming. To see solution of Subset sum problem using Dynamic Programming click here.

So, to implement this we need to the summation of A[ ] in a variable say sum and create a array T such that T[i] = A[i] + B[i].

NOTE- We can also add missing B[ ] terms in place of A[ ] terms, in that case we would be storing summation of B[ ] and T would be same.

 

Code for Sequence Finder

Implemented in C++

#include <bits/stdc++.h>
#define ll int64_t
#define MX 1000007
#define MX1 1003
using namespace std;
 
int t[MX],dp[MX];                 // Here t stores the set and dp stores whether ith element is possible or not i.e if dp[i]=1 then it is possible or not
 
bool subset_sum(int n,int sum){          // this function is used to determine whether the subset with sum is possible or not
 
  dp[0]=1;
  for(int i=0;i<n;i++){
    if(t[i]<=sum) for(int j=sum;j>=t[i];j--){
      dp[j]|=dp[j-t[i]];
    }
  }
 
  return dp[sum];
 
}
 
int main()
{
  int n,sum=0;
  cin>>n;
  for(int i=0;i<n;i++){ cin>>t[i];							// here we input array A						
    sum+=t[i];							// and store its sum of elements
  }
  for(int i=0;i<n;i++){ int a;cin>>a;						// here we input array B and add it to existing array T i.e A
    t[i]+=a;
  }
 
  (subset_sum(n,sum))?cout<<"Possible":cout<<"Not Possible";
  return 0;
 
}

Example

Sequence Finder Dynamic Programming Article is Published by Arnab Ghosh.
If you want to be a content writer with Gohired.in, please write at career@gohired.in or at admin@gohired.in.

Similar Articles

Filed Under: Algorithm, Array, Interview Questions, Uncategorized Tagged With: Array, Dynamic Programming

Reader Interactions

Primary Sidebar

Join WeekEnd Online/Offline Batch from 4-April-2020 on How to Crack Coding Interview in Just 10 Weeks : Fees just 20,000 INR

Join WeekEnd Online/Offline Batch from 4-April-2020

WhatsApp us

Secondary Sidebar

Custom Search

  • How I cracked AMAZON
  • LeetCode
  • Adobe
  • Amazon
  • Facebook
  • Microsoft
  • Hacker Earth
  • CSE Interview

Top Rated Questions

Binary Tree in Java

Get Minimum element in O(1) from input numbers or Stack

Leetcode: Edit Distance

Binary Tree Isomorphic to each other

Generate next palindrome number

Find min element in Sorted Rotated Array (With Duplicates)

DFS (Depth First Search)

Wrong Directions given find minimum moves so that he can reach to the destination

Maximum of all subarrays of size k

Fibonacci Hashing & Fastest Hashtable

Printing intermediate Integers between one element & next element of array

Given a sorted array and a number x, find the pair in array whose sum is closest to x

ADOBE Aptitude C Language Test

SAP Off Campus Hiring_ March 2015 Verbal Skills

Find and print longest consecutive number sequence in a given sequence in O(n)

Top 10 Interviews Techniqes for Campus Interview in IIT NIT BITS for MTech

Code Chef PRGIFT Solution

Closed Parentheses checker

SAP Off Campus Hiring_ March 2015 Computer Skills

Given a string, find the first character which is non-repetitive

Check Binary Tree is Binary Search Tree or not

flattens 2 D linked list to a single sorted link list

Reversal of LinkedList

LeetCode : Word Search

K’th Largest Element in BST when modification to BST is not allowed

Knight Tour Problem (Graph – Breadth First Search)

Count Possible Decodings of a given Digit Sequence

Find shortest distances between every pair of vertices ( Dynamic Programming Floyd Warshall Algorithm)

How Radix sort works

Reverse a Linked List in groups of given size

Copyright © 2026 · Genesis Framework · WordPress · Log in