ECNU刷题总结题目集

ECNU总结题目集(2023/8/29)

题目描述

17. 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

示例 1:

输入:digits = "23"

输出:"ad","ae","af","bd","be","bf","cd","ce","cf"

示例 2:

输入:digits = ""

输出:\[\]

示例 3:

输入:digits = "2"

输出:"a","b","c"

提示:

0 <= digits.length <= 4

digitsi 是范围 '2', '9' 的一个数字。

题解

cpp 复制代码
class Solution {
public:
    string s[8] = {"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; 
    vector<string> ans;

    void dfs(int now, int len, string nowS, string digits)
    {
        if(now == len)
        {
            ans.push_back(nowS);
            return ;
        }
        string digit = s[digits[now] - '2'];
        for (char c : digit)
            dfs(now + 1, len, nowS + c, digits);
    }

    vector<string> letterCombinations(string digits) {
        int len = digits.size();
        if(len)
            dfs(0, len, "", digits);
        return ans;
        
    }
};

题目描述

46. 全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

输入:nums = 1,2,3

输出:\[1,2,3,1,3,2,2,1,3,2,3,1,3,1,2,3,2,1]

示例 2:

输入:nums = 0,1

输出:\[0,1,1,0]

示例 3:

输入:nums = 1

输出:\[1]

提示:

1 <= nums.length <= 6

-10 <= numsi <= 10

nums 中的所有整数 互不相同

题解

cpp 复制代码
class Solution {
public:
    vector<vector<int>> ans;
    vector<int> vis, nowV;
    void dfs(int now, int len, vector<int>& nums)
    {
        if(now == len)
        {
            ans.push_back(nowV);
            return ;
        }
        for (int i = 0; i < len; i++)
            if(!vis[i])
            {
                vis[i] = 1;
                nowV.push_back(nums[i]);
                dfs(now + 1, len, nums);
                nowV.pop_back();
                vis[i] = 0;
            }
        }

    vector<vector<int>> permute(vector<int>& nums) {
        int len = nums.size();
        for(int i = 0; i < len; i++)
            vis.push_back(0);
        dfs(0, len, nums);

        return ans;
    }
};
相关推荐
有点。6 分钟前
C++广度优先搜索(二)-练习题
c++·算法·宽度优先
Q741_14714 分钟前
TcpDump 使用笔记
网络·c++·笔记·测试工具·tcpdump
程序猿编码17 分钟前
不用PyTorch,不用CUDA,我用C++手写了一个能跑GPT和Whisper的推理库
c++·pytorch·gpt·大模型·whisper
MC皮蛋侠客28 分钟前
TDengine C++ 系列(1):全景与最小闭环——从时序数据到第一个 C++ 读写
大数据·c++·tdengine
MC皮蛋侠客1 小时前
TDengine C++ 系列(5):C/C++ 连接器——连接管理与查询 API
c语言·c++·tdengine
MC皮蛋侠客1 小时前
TDengine C++ 系列(8):流式计算与最新值缓存——库内实时处理
c++·缓存·tdengine
天空'之城1 小时前
C 语言工业级通用组件手写 27:配置参数管理组件
c语言·eeprom·参数管理·工业级组件·掉电存储
YSL0701241 小时前
指针习题讲解
c语言
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧9 小时前
C++学习:基础知识的掌握
c++·visualstudio
wuyk55510 小时前
第2章:六步换相原理全解+STM32工程实战
c语言·开发语言·stm32·单片机·嵌入式硬件