当前位置: 首页 > news >正文

商城网站制作网站百度官网平台

商城网站制作网站,百度官网平台,传奇私服打广告网站咋做统计,专门做车评的网站步骤1:问题定义与分析 输入条件: 整数n:牌的数量整数max:葫芦牌面值之和的上限数组array:n张牌的牌面值 输出条件: 两个整数组成的数组[a,b]: a表示三张相同牌的牌面值b表示两张相同牌的牌面值如…

步骤1:问题定义与分析

  1. 输入条件:

    • 整数n:牌的数量
    • 整数max:葫芦牌面值之和的上限
    • 数组array:n张牌的牌面值
  2. 输出条件:

    • 两个整数组成的数组[a,b]:
      • a表示三张相同牌的牌面值
      • b表示两张相同牌的牌面值
    • 如果不存在符合条件的葫芦,返回[0,0]
  3. 限制条件:

    • 牌面值规则:A(1) < 2 < 3 < ... < 10 < J(11) < Q(12) < K(13)
    • 3×a + 2×b ≤ max
    • 需要找到最大的有效组合(先比较三张牌的大小,再比较两张牌的大小)
  4. 边界条件:

    • 输入数组中没有足够的相同牌组成葫芦
    • 所有可能的组合都超过max值
    • 输入数组为空或长度不足

步骤2:算法设计与分析

最优解决方案:贪心算法

  1. 统计每个牌面值出现的次数
  2. 分别找出可以作为三张牌和两张牌的候选值
  3. 对候选值排序后,采用贪心策略寻找最优解

时间复杂度分析:

  • 统计频次:O(n)
  • 排序候选值:O(k log k),其中k为不同牌面值的数量
  • 寻找最优解:O(k²) 总体时间复杂度:O(n + k² + k log k),其中k ≤ 13

空间复杂度:O(k),用于存储频次统计和候选值

#include <algorithm>
#include <iostream>
#include <unordered_map>
#include <vector>// 用于比较牌面大小的辅助函数
int getCompareValue(int card) {// A牌(值为1)在比较时应该是最大的return card == 1 ? 14 : card;
}// 用于计算和的辅助函数
int getSumValue(int card) {// 计算和时使用原始值return card;
}
std::vector<int> solution(int n, int max, const std::vector<int>& array) {// 特殊情况处理if (n < 5) return {0, 0};// 统计频次std::unordered_map<int, int> countMap;for (int card : array) {countMap[card]++;}// 收集候选值std::vector<int> triples, pairs;for (const auto& [card, count] : countMap) {// 注意:一个牌面值如果出现4次,既可以用作triple也可以用作pairif (count >= 3) {triples.push_back(card);}if (count >= 2) {pairs.push_back(card);}}// 验证是否有足够的候选值if (triples.empty() || pairs.empty()) {return {0, 0};}// 对候选值进行排序(考虑A牌的特殊性)auto compareCards = [](int a, int b) {int valueA = (a == 1) ? 14 : a;  // A牌特殊处理int valueB = (b == 1) ? 14 : b;return valueA > valueB;};std::sort(triples.begin(), triples.end(), compareCards);std::sort(pairs.begin(), pairs.end(), compareCards);// 寻找最优组合int bestTriple = 0, bestPair = 0;for (int triple : triples) {for (int pair : pairs) {// 跳过使用同一个牌面值的情况if (triple == pair) continue;// 检查是否满足最大值限制int sum = 3 * triple + 2 * pair;if (sum <= max) {// 找到一个有效组合bestTriple = triple;bestPair = pair;goto found;  // 由于已排序,第一个找到的就是最优解}}}found:return bestTriple > 0 ? std::vector<int>{bestTriple, bestPair} : std::vector<int>{0, 0};
}

步骤4:解题启发

  1. 值的二元性处理:

    • 分离比较逻辑和计算逻辑
    • 使用辅助函数明确区分不同场景下的值处理
  2. 排序策略的灵活运用:

    • 自定义比较函数处理特殊规则
    • 保持原始值用于计算约束
  3. 优化空间的发现:

    • A牌的特殊性质提供了独特的优化机会
    • 在满足约束的同时最大化结果
  1. 金融交易系统:
    struct Transaction {double nominalValue;     // 面值double tradingValue;     // 交易值double getValueForRisk() {// 风险计算使用面值return nominalValue;}double getValueForTrading() {// 交易使用交易值return tradingValue;}
    };
  2. 商品定价系统:
    class Product {double costPrice;        // 成本价double marketPrice;      // 市场价double getPriceForInventory() {// 库存估值使用成本价return costPrice;}double getPriceForSale() {// 销售使用市场价return marketPrice;}
    };

http://www.tj-hxxt.cn/news/97421.html

相关文章:

  • app 微商城网站建设陕西网页设计
  • 那个网站招丑的人做网红做网站的费用
  • 房产信息网准确吗怀柔网站整站优化公司
  • 2018年做淘宝客网站还能挣钱吗关键词优化公司靠谱推荐
  • wordpress高亮sem优化托管
  • 音乐网站开发需求网站制作报价表
  • 做参茸产品的网站简述seo对各类网站的作用
  • wordpress编辑器未知错误5.2杭州seo排名
  • 无锡住房和城乡建设部网站广告联盟平台
  • 网站建设过程中要怎么打开速度百度搜索引擎入口
  • 高端网站建设公司兴田德润在那里中国婚恋网站排名
  • 兰州网站seo哪家公司好免费投放广告平台
  • 网站建设自我总结seo的基本步骤包括哪些
  • b2b外贸网站建设推广平台排行榜
  • 一个做微信文章的网站最新消息今天的新闻
  • 北京品牌网站开发程序员培训机构排名
  • 养生网站模板windows优化大师可以卸载吗
  • 网站css文件百度广告电话号码是多少
  • 专门做简历的网站河南网站关键词优化
  • wordpress站点的根目录旧版优化大师
  • 做网站比较专业的有哪些公司免费手游推广平台
  • 套模板的网站为什么排名做不上去磁力搜索器 磁力猫在线
  • 网站模版 蓝色公司网站设计需要多少钱
  • app开发流程 网站开发教程seo推广排名网站
  • 宽城区网站建设中央电视台新闻联播广告价格
  • 做网站有哪些主题免费制作自己的网页
  • 望城区建设局网站网站流量分析的指标有哪些
  • 做网站卖什么小说百度搜索风云榜
  • 怎么建立一个表格seo优化一般多少钱
  • 做网站贵吗互联网推广引流