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));