365天挑战LeetCode1000题——Day 117 数位DP I
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相关推荐
- 365天挑战LeetCode1000题——Day 117 数位DP II
数位DP模板 # i: 第i位到最后一位的dp状态-- # mask: 可选择的数字-- # isLimit: 是否限制该位大小,如果没有,那么可以选择0-9,否则需要计算上界s[0] - 'i' # ...
- 365天挑战LeetCode1000题——Day 117 矩形区域不超过 K 的最大数值和
363. 矩形区域不超过 K 的最大数值和 代码实现 class Solution {public:int maxSumSubmatrix(vector<vector<int>> ...
- 365天挑战LeetCode1000题——Day 126 单调栈模板 500题纪念
用时126天,完成500题,平均4题/天,照这个速率,我还需要四个月完成1000题挑战. 单调栈模板 class Solution {public:vector<int> nextGrea ...
- 365天挑战LeetCode1000题——Day 260 800题
时过但境还没迁,一晃眼过去了4个月,在同样的位置发了博客. 今天完成了第八百道题,然后距离我的365天千题计划,还剩下100天左右,每天再保持两题的刷题量,就能完成我一年前定下的目标了.这也再次证明了 ...
- 365天挑战LeetCode1000题——Day 014 每日一题 + 最长公共子序列
文章目录 1. [我能赢吗](https://leetcode.cn/problems/can-i-win/) 1.1 记忆化搜索+DFS+位运算 2. [最长公共子序列](https://leetc ...
- 365天挑战LeetCode1000题——Day 012 每日一题
文章目录 前言 1. [寻找右区间](https://leetcode.cn/problems/find-right-interval/) 1.1 二分查找 总结 前言 今天还是一题,但是重新学习了快 ...
- 365天挑战LeetCode1000题——Day 103 400题 检查二进制字符串字段 最大子序列交替和 最低票价 K 站中转内最便宜的航班
400题,用时103天,平均3.88题/天,预计154天,也就是5个月后完成目标 1784. 检查二进制字符串字段 代码实现(模拟) class Solution {public:bool check ...
- 365天挑战LeetCode1000题——Day 124 单调队列模板
单调队列模板 class MaxQueue {private:queue<int> origin;deque<int> dq; public:MaxQueue() {}int ...
- 365天挑战LeetCode1000题——Day 154 Knight
154天,12次竞赛,573道题目,拿到了knight. 算是到了新的一个阶段吧,正好接下来四周应该都打不了了,因为周末有实验课. 每日一题 class Solution {public:int nu ...
最新文章
- “人工智能大脑”跳槽记:吴恩达所理解的智能
- C#启动停止SQL数据库服务
- 解决Out of memory error (version 1.2-rc4 ‘Carnac‘ (298900 ... by android-jack-team@google.com)).
- 数论 —— 素性测试
- Java 时间处理 Instant
- 一款优秀的前端JS框架—AngularJS
- 使用阿里云搭建微信公众号管理系统
- OSPF建立邻居、邻接关系 学习笔记
- 有效的数独 python_Python判断有效的数独算法示例
- 最新emoji表情代码大全_7张最新有创意好看的早上好问候动画表情图片 暖心的早安问候祝福动态图片表情大全...
- git的撤销操作amend
- golang struct数组排序_go语言中排序sort的使用方法示例
- 【华为OD机试 2023最新 】 最短木板长度(C++ 100%)
- IEduChina2019国际学校展暨国际教育论坛温暖深圳
- 15.4 真实感图形——纹理映射
- 原生小程序 申请小程序 - 发布流程
- Hibernate主键生成策略总结
- cic matlab,Matlab中CIC滤波器的应用
- 智能型超声波塑料焊接电源发生器
- 计算机组成原理知识总结(三)存储系统