【C++】vector相关OJ

这篇具有很好参考价值的文章主要介绍了【C++】vector相关OJ。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


ヾ(๑╹◡╹)ノ" 人总要为过去的懒惰而付出代价ヾ(๑╹◡╹)ノ"
【C++】vector相关OJ,C++,练习题,c++,开发语言


1. 只出现一次的数字

力扣链接
【C++】vector相关OJ,C++,练习题,c++,开发语言

代码展示:

class Solution {
public:
    int singleNumber(vector<int>& nums) 
    {
        int value = 0;
        for(auto e : nums)
        {
            value ^= e;
        }
        return value;
    }
};

思路:异或

2. 杨辉三角

力扣链接
【C++】vector相关OJ,C++,练习题,c++,开发语言

代码展示:

class Solution {
public:
    vector<vector<int>> generate(int numRows) 
    {
        vector<vector<int>> vv;
        vv.resize(numRows);//开空间,numRows个vector<int>对象
        //杨辉三角
        for (size_t i = 0; i < vv.size(); ++i)
        {
            //开空间
            vv[i].resize(i + 1, 0);//开空间
            vv[i][0] = 1;
            vv[i][vv[i].size() - 1] = 1;
        }

        for (size_t i = 0; i < vv.size(); ++i)
        {
            for (size_t j = 0; j < vv[i].size(); ++j)
            {
                if (vv[i][j] == 0)
                {
                    vv[i][j] = vv[i - 1][j - 1] + vv[i - 1][j];
                }
            }
        }
        return vv;
    }
};

思路
(1)规律:头尾都是1,中间第[j]个数等于上一行[j-1]+[j];
(2)通过两次operator,来访问每一个数据。本质上是先访问第i个vector< int >对象,然后再访问这个对象的第j个int类型的数据(动态二维数组);

注意:(1)vector< vector < int >> 类比二维数组,vector < int > 类比于int数组,vector< vector < int >> 类比于对象数组,对象全是vector< int >类型的

3. 电话号码字母组合

力扣链接
【C++】vector相关OJ,C++,练习题,c++,开发语言
代码展示:

class Solution {
    //数字对应英文字母的映射
    string _numToStr[10] = { "", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
public:
    //递归函数
    void _letterCombine(string digits, size_t di, string combineStr, vector<string>& retV)
    {
        //返回条件
        if(di == digits.size())
        {
            retV.push_back(combineStr);
            return;
        }
        //取到数字字符转换为数字,在取到对应的字符串
        int num = digits[di] - '0';//数字字符转换为数字
        string str = _numToStr[num];//取到对应的字符串
        for (auto ch : str)
        {
            _letterCombine(digits, di + 1, combineStr + ch, retV);
        }


    }
    vector<string> letterCombinations(string digits) 
    {
        vector<string> retV;
        if(digits.empty())
            return retV;
        size_t di = 0;
        string str;
        _letterCombine(digits, di, str, retV);
        return retV;
    }
};

思路:(1)排列组合,多路递归。
(2)当di等于数字字符串的大小【digits.size()】时,此时的combineStr尾插到retV【类型是vector< string >】并递归返回。

注意:(1)指的是,2-9键所对应的字母的组合【比如:2对应的就是"abc",3对应的就是"def",4对应的就是"ghi",7对应的就是"pqrs"等】。
(2)输出多少个数字,字符串的长度就是多少。文章来源地址https://www.toymoban.com/news/detail-714586.html

到了这里,关于【C++】vector相关OJ的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据结构】时间复杂度---OJ练习题

    目录 🌴时间复杂度练习 📌面试题---消失的数字 题目描述 题目链接:面试题 17.04. 消失的数字 🌴解题思路 📌思路1: malloc函数用法  📌思路2: 📌思路3: 🙊 如果有不了解时间复杂度的请移步上一篇文章:【数据结构】初识 题目描述 数组 nums 包含从 0 到 n 的所有整数,

    2024年02月16日
    浏览(41)
  • C++ Primer 6.5 特殊用途语言特性 6.6 函数匹配 知识点+练习题

    在给定的作用域中一个形参只能被赋予一次默认实参 局部变量不能作为默认实参,函数结束就销毁,无法当作默认实参。 除此之外,只要表达式的类型可转换成形参所需要的类型,则可以作为默认实参 将函数定义为内联函数,即加上inline,在编译时内联展开代替函数 在编译

    2024年01月22日
    浏览(46)
  • 时间复杂度空间复杂度相关练习题

    【题目】:题目链接 思路1:排序——》qsort快排——》时间复杂度O(n*log2n)  不符合要求 思路2: (0+1+2+3+...+n)-(a[0]+a[1]+[2]+...+a[n-2]) ——》 时间复杂度O(N)空间复杂度为O(1) (0+1+2+3+...+n)直接用等差数列求和就可 思路3:数组中是几就在第几个位置写一下这个值  ——》

    2024年02月13日
    浏览(52)
  • 【C++】vector OJ练习

    这篇文章我们来做几道vector相关的OJ练习,练习一下vector的使用。。 题目链接: link 思路讲解 那这道题我们用 ^ 来搞是不是就非常简单啊。 两个相同的整数异或结果为0;0和任何整数异或结果还是这个数本身。 所以可以怎么搞, 定义一个变量初始值为0,遍历数组,让它和每

    2023年04月26日
    浏览(48)
  • c++一级练习题(1)

    #includeiostream #includeiomanip using namespace std; int main() {     int a,b;     cinab;     couta*b;     return 0; } #includeiostream #includeiomanip using namespace std; int main() {     int a;     cina;     if(a%1 == a)     {         cout\\\"no\\\";     }     else     {         cout\\\"yes\\\";  

    2024年02月10日
    浏览(43)
  • C# 类class、继承、多态性、运算符重载,相关练习题

    34.函数重载 35.几个相同的函数  print() ,用于打印不同的数据类型。   36.基类和派生类   37.基类的初始化   38.多重继承   39.动态多态性   40.抽象性和虚方法   41.通过虚方法 area() 来计算不同形状图像的面积   42.运算符重载的实现   @www.runoob.com 

    2024年02月09日
    浏览(44)
  • C 语言练习题更新

    目录(先不要看答案,首先自己做才能更好的领悟,做不来没关系) 题目一:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4,组成所有的排列后再去掉不满足条件的排列。 题目

    2024年02月14日
    浏览(45)
  • C语言之练习题

    欢迎来到我的: 世界 希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 ! 这期文章由:两题问答题+四道编程题;小孩在文章中写有详细解题思路,感谢大家支持支持。 思路: 首先我们要知道 x=x(x-1) 的含义; 假设x=3;也就是 011 ; 而x-1=2;是 010 ;

    2024年02月10日
    浏览(58)
  • C++练习题第9套

    81.在C++中,下面哪个不是CPP文件扩展名? a. .cpp b. .hpp c. .cc d. .cxx 82.在C++中,下面哪个函数不是输入/输出函数? a. putchar() b. scanf() c. cout d. getchar() 83.以下哪个不是C++中的? a. int b. double c. float d. integer 84.在C++中,下面哪个函数用于从字符串中提取子字符串? a

    2024年02月09日
    浏览(51)
  • C++练习题第8套

    71.下列哪个运算符与一起使用可以用于获取一个变量的地址? A. * B. C. D. / 72.下列关于指针的说法错误的是? A. 指针变量存储的是一个变量的地址 B. 可以通过指针变量修改所指向的变量的值 C. 指针变量可以指向任何类型的数据 D. 指针变量只能指向同一数据类型的变量 73.下列

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包