Skip to main content

two_sum_sorted

Function two_sum_sorted 

Source
pub fn two_sum_sorted(nums: &[i64], target: i64) -> Option<(usize, usize)>
Expand description

Tartiblangan massivda yig’indisi target ga teng ikkita son topadi.

G’oya: ikki ko’rsatkich — biri boshda, biri oxirida. Yig’indi katta bo’lsa o’ngdagini chapga suramiz, kichik bo’lsa chapdagini o’ngga.

 [1, 3, 4, 6, 8, 11]   target = 10
  ↑              ↑     1 + 11 = 12 > 10 → o'ngni suramiz
  ↑           ↑        1 + 8  = 9  < 10 → chapni suramiz
     ↑        ↑        3 + 8  = 11 > 10 → o'ngni suramiz
     ↑     ↑           3 + 6  = 9  < 10 → chapni suramiz
        ↑  ↑           4 + 6  = 10 ✓
  • Time: O(n) (hash-jadvalsiz!), Space: O(1).

§Misol

use rust_algorithms::other::two_pointers::two_sum_sorted;

assert_eq!(two_sum_sorted(&[1, 3, 4, 6, 8, 11], 10), Some((2, 3)));
assert_eq!(two_sum_sorted(&[1, 2], 100), None);