Skip to main content

coin_change_greedy

Function coin_change_greedy 

Source
pub fn coin_change_greedy(coins: &[u64], amount: u64) -> Option<Vec<u64>>
Expand description

Qaytim berish (coin change) — ochko’z yondashuv.

Har safar eng katta sig’adigan tangani olamiz.

⚠️ Diqqat: bu har doim ham optimal emas! U faqat “kanonik” tanga tizimlarida to’g’ri ishlaydi (masalan, 1, 5, 10, 25, 50, 100).

Qarshi misol: tangalar [1, 3, 4], summa 6. Ochko’z: 4 + 1 + 1 = 3 ta tanga. Optimal: 3 + 3 = 2 ta. To’g’ri javob uchun crate::dp::coin_change_min (DP) ni ishlating.

  • Time: O(n log n + summa/eng_kichik_tanga).

§Misol

use rust_algorithms::greedy::coin_change_greedy;

// kanonik tizim — to'g'ri ishlaydi
assert_eq!(coin_change_greedy(&[1, 5, 10, 25], 63), Some(vec![25, 25, 10, 1, 1, 1]));

// kanonik bo'lmagan tizim — optimal emas!
assert_eq!(coin_change_greedy(&[1, 3, 4], 6), Some(vec![4, 1, 1])); // 3 ta, optimal 2 ta

assert_eq!(coin_change_greedy(&[5, 10], 3), None); // yechim yo'q