leetcode-386:字典序排数

简介: leetcode-386:字典序排数

题目

题目连接

给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。

你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。

示例 1:

输入:n = 13
输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]

示例 2:

输入:n = 2
输出:[1,2]

解题

方法一:字典树+前序遍历

class Trie{
public:
    bool isEnd=false;
    vector<Trie*> next=vector<Trie*>(10,nullptr);
};
class Solution {
public:
    Trie* trie=new Trie();
    vector<int> res;
    vector<int> lexicalOrder(int n) {
        for(int i=1;i<=n;i++){
            insert(to_string(i));
        }
        traversal(trie,0);
        return res;
    }
    //字典树前序遍历
    void traversal(Trie* root,int path){
        if(root->isEnd){
            res.push_back(path);
        }
        for(int i=0;i<10;i++){
            if(root->next[i]){
                traversal(root->next[i],path*10+i);
            }
        }
    }
    //字典树插入节点
    void insert(string&& s){
        Trie* node=trie;
        for(char c:s){
            if(node->next[c-'0']==nullptr){
                node->next[c-'0']=new Trie();
            }
            node=node->next[c-'0'];
        }
        node->isEnd=true;
    }
};

方法二:迭代

class Solution {
public:
    vector<int> lexicalOrder(int n) {
        vector<int> res(n);
        int num=1;
        for(int i=0;i<n;i++){
            res[i]=num;
            if(num*10<=n){
                num*=10;
            }else{
                while(num%10==9||num+1>n){
                    num/=10;
                }
                num++;
            }
        }
        return res;
    }
};


相关文章
|
9月前
|
人工智能 自然语言处理 物联网
魔搭社区模型速递(7.6-7.12)
🙋魔搭ModelScope本期社区进展:1481个模型,324个数据集,528个创新应用, 7 篇内容
548 0
|
4月前
|
机器学习/深度学习 数据采集 自然语言处理
BOSS直聘3B超越Qwen3-32B,更多训练数据刷新小模型极限
BOSS直聘Nanbeige实验室开源Nanbeige4-3B模型,仅30亿参数却在数学、推理、代码等多领域超越320亿参数大模型。通过23万亿高质量token训练、千万级指令微调及双重蒸馏强化学习,实现小模型性能跃升,为端侧部署与低成本推理提供新范式。
783 5
|
8月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1451 1
|
9月前
|
数据采集 人工智能 自然语言处理
DistillQwen-ThoughtY:通过变长思维链蒸馏,全面提升模型推理能力!
阿里云 PAI 团队基于 EasyDistill 框架,创新性地采用推理冗余度(RV)和认知难度(CD)双指标筛选机制,实现思维链与模型能力的精准匹配,发布新一代推理模型 DistillQwen-ThoughtY。相关模型和数据集已在 hugging face/ModelScope 等开源社区开放,配套 EasyDistill 框架支持高效知识蒸馏。近期内将推出 DistillQwen-ThoughtY 模型在 PAI-ModelGallery 的一键部署、训练和评测实践。
|
11月前
|
人工智能 自然语言处理 算法
DistilQwen-ThoughtX:变长思维链推理模型,能力超越DeepSeek蒸馏模型
阿里云PAI团队开发的 OmniThought 数据集,其中包含200万思维链,并标注了推理冗余度(RV)和认知难度(CD)分数。基于此数据集,我们还推出了 DistilQwen-ThoughtX 系列模型,可以通过RV和CD分数对思维链进行筛选,训练得到的模型获得根据问题和本身的认知能力,生成变长思维链的能力。同时在 EasyDistill 框架中开源了 OmniThought 数据集和 DistilQwen-ThoughtX 模型的全部权重。这些模型在性能上超过了 DeepSeek-R1-Distill 系列。
|
数据安全/隐私保护 开发者 Python
使用 yt-dlp 二次开发, 快速下载 YouTube等平台高清视频工具开发
想从多个平台下载高清无水印视频?本文教你使用 `yt-dlp` 工具轻松实现!支持 YouTube、B站、抖音等主流平台,提供代码示例与解析,涵盖批量下载、字幕提取、音频分离等高级功能。无论你是开发者还是普通用户,都能快速上手,高效获取所需视频资源。
4471 0
|
机器学习/深度学习 自然语言处理 并行计算
DeepSpeed分布式训练框架深度学习指南
【11月更文挑战第6天】随着深度学习模型规模的日益增大,训练这些模型所需的计算资源和时间成本也随之增加。传统的单机训练方式已难以应对大规模模型的训练需求。
2080 3
|
存储 安全 开发工具
GitHub 支持双因素认证(2FA)
【9月更文挑战第29天】
2930 6
|
机器学习/深度学习 自然语言处理 算法

热门文章

最新文章