mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-10-31 18:37:48 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			28 lines
		
	
	
		
			566 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			566 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // File: coin_change_greedy.go
 | |
| // Created Time: 2023-07-23
 | |
| // Author: Reanon (793584285@qq.com)
 | |
| 
 | |
| package chapter_greedy
 | |
| 
 | |
| /* 零钱兑换:贪心 */
 | |
| func coinChangeGreedy(coins []int, amt int) int {
 | |
| 	// 假设 coins 列表有序
 | |
| 	i := len(coins) - 1
 | |
| 	count := 0
 | |
| 	// 循环进行贪心选择,直到无剩余金额
 | |
| 	for amt > 0 {
 | |
| 		// 找到小于且最接近剩余金额的硬币
 | |
| 		for i > 0 && coins[i] > amt {
 | |
| 			i--
 | |
| 		}
 | |
| 		// 选择 coins[i]
 | |
| 		amt -= coins[i]
 | |
| 		count++
 | |
| 	}
 | |
| 	// 若未找到可行方案,则返回 -1
 | |
| 	if amt != 0 {
 | |
| 		return -1
 | |
| 	}
 | |
| 	return count
 | |
| }
 | 
