יונ.29

חיבור של 3 מספרים

חיבור של 3 מספרים

נותנים מערך לא מסודר ומספר שצריך להגיעה עליו ע''י חיבור של 3 מספרים מהמערך הנתון. יש להחזיר רשימה של triplets שסכום של כל Triplet יהיה שווה למספר מטרה.

  1. /*Example: */
  2. //array: [12, 3, 1, 2, -6, 5, -8, 6]
  3. //target = 0
  4. //Result: [[-8, 2, 6], [-8, 3, 5], [-6, 1, 5]]
  5.  
  6. public List<int[]> ThreeNumberSum(int array, int targetSum) {
  7. Array.Sort(array);
  8. List<int[]> triplets = new List<int[]>();
  9. for(int i = 0; i < array.Length-2;i++) {
  10. int left = i + 1;
  11. int right = array.Length - 1;
  12. while(left < right) {
  13. int sum = array[i] + array[left] + array[right];
  14. if(sum == targetSum) {
  15. int[] tr = {array[i], array[left], array[right]};
  16. triplets.Add(tr);
  17. left++;
  18. right--;
  19. }
  20. else if(sum < targetSum) {
  21. left++;
  22. }
  23. else {
  24. right--;
  25. }
  26. }
  27. }
  28. return triplets;
  29. }


תגיות:
שתף את הסיפור הזה:

תגובות(0)

השאירו תגובה

קפטצ'ה לא מתאימה

תגובה