Skip to main content

coin_change_min

Function coin_change_min 

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

Qaytim berish — optimal yechim (DP), ochko’z yondashuvdan farqli.

Holat: dp[s] = s summani yig’ish uchun kerak bo’lgan minimal tangalar soni. O’tish: dp[s] = 1 + min(dp[s - tanga]) barcha tangalar bo’yicha.

  • Time: O(tangalar × summa), Space: O(summa).

§Misol

use rust_algorithms::dp::coin_change_min;
use rust_algorithms::greedy::coin_change_greedy;

// Ochko'zlik xato qiladigan holat:
assert_eq!(coin_change_min(&[1, 3, 4], 6), Some(2));            // 3 + 3
assert_eq!(coin_change_greedy(&[1, 3, 4], 6).unwrap().len(), 3); // 4 + 1 + 1

assert_eq!(coin_change_min(&[2], 3), None);
assert_eq!(coin_change_min(&[1, 5, 10], 0), Some(0));