902. 最大为 N 的数字组合

代码实现

class Solution {private:int solve(stack<int>& st, vector<int>& digits) {if (st.empty()) return 0;int tmp = st.top();st.pop();int pos = lower_bound(digits.begin(), digits.end(), tmp) - digits.begin();// cout << pos * int(pow(digits.size(), st.size())) << endl;if (pos < digits.size() && digits[pos] == tmp) {if (st.empty()) return pos + 1;return pos * int(pow(digits.size(), st.size())) + solve(st, digits);}return pos * int(pow(digits.size(), st.size()));}
public:int atMostNGivenDigitSet(vector<string>& digits, int n) {int ans = 0;int sz = digits.size();int i = 1;for (long long k = 1; k * 10 <= n; k *= 10) {ans += int(pow(sz, i));i++;}int tmp = n;sort(digits.begin(), digits.end());vector<int> digits_new;for (auto digit : digits) {digits_new.push_back(digit[0] - '0');}stack<int> st;while (tmp) {int digit = tmp % 10;st.push(digit);tmp /= 10;}return ans + solve(st, digits_new);}
};

365天挑战LeetCode1000题——Day 117 数位DP I相关推荐

  1. 365天挑战LeetCode1000题——Day 117 数位DP II

    数位DP模板 # i: 第i位到最后一位的dp状态-- # mask: 可选择的数字-- # isLimit: 是否限制该位大小,如果没有,那么可以选择0-9,否则需要计算上界s[0] - 'i' # ...

  2. 365天挑战LeetCode1000题——Day 117 矩形区域不超过 K 的最大数值和

    363. 矩形区域不超过 K 的最大数值和 代码实现 class Solution {public:int maxSumSubmatrix(vector<vector<int>> ...

  3. 365天挑战LeetCode1000题——Day 126 单调栈模板 500题纪念

    用时126天,完成500题,平均4题/天,照这个速率,我还需要四个月完成1000题挑战. 单调栈模板 class Solution {public:vector<int> nextGrea ...

  4. 365天挑战LeetCode1000题——Day 260 800题

    时过但境还没迁,一晃眼过去了4个月,在同样的位置发了博客. 今天完成了第八百道题,然后距离我的365天千题计划,还剩下100天左右,每天再保持两题的刷题量,就能完成我一年前定下的目标了.这也再次证明了 ...

  5. 365天挑战LeetCode1000题——Day 014 每日一题 + 最长公共子序列

    文章目录 1. [我能赢吗](https://leetcode.cn/problems/can-i-win/) 1.1 记忆化搜索+DFS+位运算 2. [最长公共子序列](https://leetc ...

  6. 365天挑战LeetCode1000题——Day 012 每日一题

    文章目录 前言 1. [寻找右区间](https://leetcode.cn/problems/find-right-interval/) 1.1 二分查找 总结 前言 今天还是一题,但是重新学习了快 ...

  7. 365天挑战LeetCode1000题——Day 103 400题 检查二进制字符串字段 最大子序列交替和 最低票价 K 站中转内最便宜的航班

    400题,用时103天,平均3.88题/天,预计154天,也就是5个月后完成目标 1784. 检查二进制字符串字段 代码实现(模拟) class Solution {public:bool check ...

  8. 365天挑战LeetCode1000题——Day 124 单调队列模板

    单调队列模板 class MaxQueue {private:queue<int> origin;deque<int> dq; public:MaxQueue() {}int ...

  9. 365天挑战LeetCode1000题——Day 154 Knight

    154天,12次竞赛,573道题目,拿到了knight. 算是到了新的一个阶段吧,正好接下来四周应该都打不了了,因为周末有实验课. 每日一题 class Solution {public:int nu ...

最新文章

  1. “人工智能大脑”跳槽记:吴恩达所理解的智能
  2. C#启动停止SQL数据库服务
  3. 解决Out of memory error (version 1.2-rc4 ‘Carnac‘ (298900 ... by android-jack-team@google.com)).
  4. 数论 —— 素性测试
  5. Java 时间处理 Instant
  6. 一款优秀的前端JS框架—AngularJS
  7. 使用阿里云搭建微信公众号管理系统
  8. OSPF建立邻居、邻接关系 学习笔记
  9. 有效的数独 python_Python判断有效的数独算法示例
  10. 最新emoji表情代码大全_7张最新有创意好看的早上好问候动画表情图片 暖心的早安问候祝福动态图片表情大全...
  11. git的撤销操作amend
  12. golang struct数组排序_go语言中排序sort的使用方法示例
  13. 【华为OD机试 2023最新 】 最短木板长度(C++ 100%)
  14. IEduChina2019国际学校展暨国际教育论坛温暖深圳
  15. 15.4 真实感图形——纹理映射
  16. 原生小程序 申请小程序 - 发布流程
  17. Hibernate主键生成策略总结
  18. cic matlab,Matlab中CIC滤波器的应用
  19. 智能型超声波塑料焊接电源发生器
  20. 计算机组成原理知识总结(三)存储系统

热门文章

  1. 【时间规划】个性化简历
  2. 程序员个性化简历模板项目
  3. 报名信息填写完成! 您的报名号请牢记!
  4. C#调用matlab时,类型初始值设定项引发异常,如何解决?
  5. 如何把一个整数转换成二进制
  6. hbase热点问题解决(预分区)
  7. vuex vue-router
  8. matlab求方程实根,matlab怎么求方程的根
  9. 计算机控制系统期末测试,学堂在线计算机操作系统考试题及答案
  10. 欧盟委员会将批准微软收购Skype的交易