Code is pretty much simple.
So here is the code for the problem:
So here is the code for the problem:
/** * @author Dharmvir Singh * This program finds the position in an array where sum of left * side is equal to sum of right side excluding the position. If * position doesn't exist return -1. */ public class FindPosition { public static void main(String[] args) { // int a[] = { 1, 2, 3, 2, 1 }; int a[] = { -1, 2, -3, 6, -5 }; int sumLeft = a[0], flag = 0, sumRight = 0; int arrayLength = a.length; // Assume that 1st position is the desired position and so finding the // right side sum for (int i = 2; i < arrayLength; i++) { sumRight += a[i]; } /* * Now we will check if our assumption is correct that if a[1] position * and if not assume that a[2] is the correct one and so on.. last * position to check will be (a.length-1) */ int i; for (i = 1; i < (arrayLength - 1); i++) { if (sumLeft == sumRight) { break; } sumLeft += a[i]; sumRight -= a[i + 1]; } if (i < arrayLength - 1) { System.out.println("Pos is " + i + " sum is: " + sumLeft); } else { System.out.println("No post"); } } }Related Posts
- Tricky Java question: finding the missing number
- Checking if i=4 or 5 or 6 in single if condition without using logical operators
Happy Coding.
Nice Blog :)
ReplyDelete