C语言/数据结构贪心算法题解:超市货架商品排列——最多能卖出多少件商品? 问题描述在一个超市里有一个包含 $n$ 个格子的货物架每个格子中放有一种商品商品用小写字母a到z表示。当顾客进入超市时他们会依次从第一个格子查找到第 $n$ 个格子寻找自己想要购买的商品。如果在某个格子中找到该商品顾客就会购买它该商品立即被移除格子变为空并离开如果中途遇到一个空格子或查找完所有格子还没有找到想要的商品顾客也会离开。作为超市管理员你可以在顾客到来之前重新调整商品的顺序。调整规则如下你只能重新排列现有商品不能添加或移除商品可以改变商品在架子上的位置包括留下空格即某些格子可以为空调整后商品的总数和种类保持不变当第一个顾客进入后商品位置不能再调整。你需要计算在最优调整下最多可以卖出多少件商品。输入变量说明n货物架的格子数m顾客想要购买的商品种类数s货物架上商品的初始顺序长度为 $n$ 的字符串c顾客想要购买的商品种类长度为 $m$ 的字符串程序代码#include stdio.h#include string.hint maxSales(int n, int m, char* s, char* c) {int shelf[26] {0}; // 货架上每种商品的数量int need[26] {0}; // 顾客需要的每种商品数量int result 0;// 统计货架商品for (int i 0; i n; i) {shelf[s[i] - a];}// 统计顾客需求for (int i 0; i m; i) {need[c[i] - a];}// 计算最多能卖出的数量for (int i 0; i 26; i) {if (shelf[i] 0 need[i] 0) {result (shelf[i] need[i] ? shelf[i] : need[i]);}}return result;}int main() {printf(%d\n, maxSales(3, 4, abc, abcd)); // 预期输出: 3printf(%d\n, maxSales(4, 2, abbc, bb)); // 预期输出: 2printf(%d\n, maxSales(5, 4, bcdea, abcd)); // 预期输出: 4return 0;}#include stdio.h #include string.h int maxSales(int n, int m, char* s, char* c) { int shelf[26] {0}; // 货架上每种商品的数量 int need[26] {0}; // 顾客需要的每种商品数量 int result 0; // 统计货架商品 for (int i 0; i n; i) { shelf[s[i] - a]; } // 统计顾客需求 for (int i 0; i m; i) { need[c[i] - a]; } // 计算最多能卖出的数量 for (int i 0; i 26; i) { if (shelf[i] 0 need[i] 0) { result (shelf[i] need[i] ? shelf[i] : need[i]); } } return result; } int main() { printf(%d\n, maxSales(3, 4, abc, abcd)); // 预期输出: 3 printf(%d\n, maxSales(4, 2, abbc, bb)); // 预期输出: 2 printf(%d\n, maxSales(5, 4, bcdea, abcd)); // 预期输出: 4 return 0; }运行结果

相关新闻

最新新闻

Play Integrity Fix:Root设备完美通过Google认证的终极解决方案

Play Integrity Fix:Root设备完美通过Google认证的终极解决方案

Play Integrity Fix:Root设备完美通过Google认证的终极解决方案 【免费下载链接】PlayIntegrityFix Fix Play Integrity (and SafetyNet) verdicts. 项目地址: https://gitcode.com/GitHub_Trending/pl/PlayIntegrityFix 对于Android设备Root用户来说&#x…

2026/8/12 21:48:23
Dolphin模拟器RVZ块大小终极调校:3倍加载速度的存储优化秘籍

Dolphin模拟器RVZ块大小终极调校:3倍加载速度的存储优化秘籍

Dolphin模拟器RVZ块大小终极调校:3倍加载速度的存储优化秘籍 【免费下载链接】dolphin Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements. 项目地址: https://gitcode.com/GitHub_Trending/do…

2026/8/12 21:48:23
3分钟上手biliTickerBuy:B站会员购抢票辅助工具完全指南

3分钟上手biliTickerBuy:B站会员购抢票辅助工具完全指南

3分钟上手biliTickerBuy:B站会员购抢票辅助工具完全指南 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy biliTickerBuy是一款开源免费的B站会员购辅助工具,旨在帮助普通…

2026/8/12 21:48:23
Linux系统下OneDrive命令行客户端部署与同步配置实战指南

Linux系统下OneDrive命令行客户端部署与同步配置实战指南

1. 项目概述:为什么要在Linux上折腾OneDrive?如果你和我一样,日常工作流横跨Windows、macOS和Linux多个平台,那么云端文件的同步一致性就是个绕不开的痛点。微软的OneDrive作为Office 365套件的核心组件,在Windows上自…

2026/8/12 21:48:23
对偶四元数:统一描述三维旋转与平移的数学工具

对偶四元数:统一描述三维旋转与平移的数学工具

1. 从四元数到对偶四元数:一个更强大的姿态描述工具如果你已经接触过四元数,并且用它来处理过三维旋转,那你一定体会过它的优雅和高效。它用四个数(一个标量,一个三维向量)就解决了万向节锁的难题&#xff…

2026/8/12 21:48:23
Pandas数据处理实战:从核心数据结构到高效数据清洗与分析

Pandas数据处理实战:从核心数据结构到高效数据清洗与分析

1. 从数据泥潭到清晰洞察:为什么Pandas是数据工作者的瑞士军刀如果你正在用Python处理数据,无论是从Excel里倒腾销售报表,还是在数据库里分析用户行为,大概率都绕不开一个名字:Pandas。它远不止是一个“库”&#xff0…

2026/8/12 21:43:23