C++ 两数之和 题解

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int n = nums.size();
        for (int i = 0; i < n; ++i) {
            for (int j = i + 1; j < n; ++j) {
                if (nums[i] + nums[j] == target) {
                    return {i, j};
                }
            }
        }
        return {};
    }
};

解析:

class Solution

class表示声明一个类,单词Solution是“解决方案”的意思。那么class Soulution 就是声明出一个解决方案的类,类中用来存放关于解决这一问题所需要的各种函数/方法、变量。

为什么要这样做呢,简单说来就是:

  • 抽象层面上更符合逻辑——针对某一问题的解决方案,方案里可以有若干成员变量和成员函数
  • 生成若干实例互不干扰——因为每个类的实例内部的(非静态)成员变量是独立的
  • 更“干净”,即不会污染到程序其他地方的代码——类中的成员不会与类外其他标识符冲突

一个类(生成的对象)可以理解成函数+函数运行需要的环境。如果函数不需要额外的运行环境,也可以把函数设置成静态的。

public

C++中的public分为两种情况:
1、public修饰的类成员,表示类成员被访问控制的权限。


public修饰:公有成员,基类、子类、友元、外部都可以访问

private修饰:私有成员,基类、友元可以访问,子类、外部不可以访问

protected修饰:保护成员,基类、子类、友元可以访问,外部不可以访问

这样很好得体现了C++面向对象思想中的封装。

2、public修饰子类继承基类的方式,表示公有继承。


以公有方式继承,通过子类访问基类的成员,其维持基类中的公有,私有还是保护。

vector<int> twoSum(vector<int>& nums, int target)

向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。

在 c++ 中,vector 是一个十分有用的容器。它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。


C++ 中数组很坑,有没有类似 Python 中 list 的数据类型呢?类似的就是 vector!vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和 string 对象一样,标准库将负责管理与存储元素相关的内存。我们把 vector 称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。

https://leetcode-cn.com/problems/two-sum/

猜你喜欢

转载自blog.csdn.net/qwazp3526cn/article/details/118370144