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

209、不大于n的数的组合(python)

题目

已知一个数n和可组合的数字集合s,通过组合数字集合构成一个数x,使其不大于n。

例如:
n = 22356789
a = [2, 3, 4, 8, 9]

x = 22349999

代码实现

n = 22356789
a = [2, 3, 4, 8, 9]
a.sort()
s = str(n)
tag = True
res = []
for i in range(len(s)):
    cur = int(s[i])
    j = 0
    # 当没有找到停顿点时
    if tag:
        while j < len(a) and a[j] < cur:
            j += 1
        # 字典中有等于的数
        if a[j] == cur:
            res.append(a[j])
        # 字典中没有等于的数且比该数大,则为停顿点
        else:
            res.append(a[j - 1])
            tag = False
    # 已经找到停顿点,后续的都保持最大的值
    else:
        res.append(a[-1])

print(res)

相关文章:

  • Linux(8.4)NFS
  • 一、串行通信基础知识
  • Dufs 文件共享系统,内部文件共享还在用ftp\samba?
  • 100. 岛屿的最大面积
  • Linux安装MySQL5.7.26教程图解
  • 蓝桥杯好题推荐---二位前缀和
  • Flask多参数模版使用
  • AI:Machine Learning Data Science
  • 稳定运行的以PostgreSQL数据库为数据源和目标的ETL性能变差时提高性能方法和步骤
  • 图解AUTOSAR_CP_NetworkManagementInterface
  • 人工智能之数学基础:从线性变换理解矩阵范数和矩阵行列式
  • JavaScript 中的包装类型:概念、作用与使用场景
  • spring启动流程
  • 集成学习(上):Bagging集成方法
  • C# ManualResetEvent‌的高级用法
  • Pytorch学习笔记
  • 书摘 ASP.NET Core技术内幕与项目实战:基于DDD与前后端分离
  • 案例驱动的 IT 团队管理:创新与突破之路:第二章 团队组建:从人才画像到生态构建-2.2.1星型架构 vs 网状架构对比
  • 华为中小型企业项目案例
  • Three.js学习
  • OpenAI与微软正谈判修改合作条款,以推进未来IPO
  • 澎湃思想周报|欧洲胜利日之思;教育监控与学生隐私权争议
  • 专访|西蒙·斯特朗格:以“辞典”的方式讲述二战家族史
  • 巴西总统卢拉昨晚抵达北京
  • 数说母亲节|全球11亿女性进入更年期,“不是忍忍就好”
  • 巴西总统卢拉将访华