Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.96 KB | None | 0 0
  1. // You are going to be given an array of integers. Your job is to take that array and find an index N where the sum of the integers to the left of N is equal to the sum of the integers to the right of N. If there is no index that would make this happen, return -1.
  2.  
  3. // For example:
  4.  
  5. // Let's say you are given the array {1,2,3,4,3,2,1}:
  6. // Your function will return the index 3, because at the 3rd position of the array, the sum of left side of the index ({1,2,3}) and the sum of the right side of the index ({3,2,1}) both equal 6.
  7.  
  8. // Let's look at another one.
  9. // You are given the array {1,100,50,-51,1,1}:
  10. // Your function will return the index 1, because at the 1st position of the array, the sum of left side of the index ({1}) and the sum of the right side of the index ({50,-51,1,1}) both equal 1.
  11.  
  12. // Last one:
  13. // You are given the array {20,10,-80,10,10,15,35}
  14. // At index 0 the left side is {}
  15. // The right side is {10,-80,10,10,15,35}
  16. // They both are equal to 0 when added. (Empty arrays are equal to 0 in this problem)
  17. // Index 0 is the place where the left side and right side are equal.
  18.  
  19. // Note: Please remember that in most programming/scripting languages the index of an array starts at 0.
  20.  
  21. // Input:
  22. // An integer array of length 0 < arr < 1000. The numbers in the array can be any integer positive or negative.
  23.  
  24. // Output:
  25. // The lowest index N where the side to the left of N is equal to the side to the right of N. If you do not find an index that fits these rules, then you will return -1.
  26.  
  27. // Note:
  28. // If you are given an array with multiple answers, return the lowest correct index.
  29. // An empty array should be treated like a 0 in this problem.
  30.  
  31. /*
  32. come up with a summing function
  33.  
  34. start loop from i = 1, and end at i = length -2.
  35. every loop,
  36. LHS, you slice it
  37. RHS, you slice it,
  38. compare sum(LHS) === sum(RHS);
  39. if equal, return the i;
  40. else, keep moving through the loop.
  41. you looped through the whole thing, and didn't return anything?
  42. then there wasn't anything good.
  43. return -1;
  44.  
  45. */
  46.  
  47. function sum(arr) {
  48. return arr.reduce(function(a, b) {
  49. return a + b;
  50. });
  51. }
  52.  
  53. function findEvenIndex(arr) {
  54. var LHS = [];
  55. var RHS = [];
  56. for (var i = 1; i < arr.length - 2; i++) {
  57. LHS = arr.slice(0, i);
  58. RHS = arr.slice(i + 1);
  59. if (sum(LHS) === sum(RHS)) {
  60. return i;
  61. }
  62. }
  63. return -1;
  64. }
  65.  
  66. // Test.describe("FindEvenIndex", function() {
  67. // Test.it("Tests", function() {
  68. // Test.assertEquals(findEvenIndex([1,2,3,4,3,2,1]),3, "The array was: [1,2,3,4,3,2,1] \n");
  69. // Test.assertEquals(findEvenIndex([1,100,50,-51,1,1]),1, "The array was: [1,100,50,-51,1,1] \n");
  70. // Test.assertEquals(findEvenIndex([1,2,3,4,5,6]),-1, "The array was: [1,2,3,4,5,6] \n");
  71. // Test.assertEquals(findEvenIndex([20,10,30,10,10,15,35]),3, "The array was: [20,10,30,10,10,15,35] \n");
  72. // });
  73. // });
  74.  
  75. console.log(findEvenIndex([1,2,3,4,3,2,1]));
  76. findEvenIndex([1, 100, 50, -51, 1, 1]);
  77. findEvenIndex([1,2,3,4,5,6]);
  78. findEvenIndex([20,10,30,10,10,15,35]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement