3Sum
问题简介:
给定n个整数的数组nums,是否有元素a,b,c在nums中,使a + b + c = 0?
找到数组中所有唯一的三元组,它们的总和为零
注:解决方案集不得包含重复的三元组
例如{1,-1,0}和{1,0,-1}
举例:
给定数组 {-2,1,0,-1,-1,2,3}
输出{
{1,0,-1},
{-1,-1,2},
{-2,0,2},
2024年10月11日
3Sum
问题简介:
给定n个整数的数组nums,是否有元素a,b,c在nums中,使a + b + c = 0?
找到数组中所有唯一的三元组,它们的总和为零
注:解决方案集不得包含重复的三元组
例如{1,-1,0}和{1,0,-1}
举例:
给定数组 {-2,1,0,-1,-1,2,3}
输出{
{1,0,-1},
{-1,-1,2},
{-2,0,2},
2024年10月11日
C++ 20 对于类成员变量的初始化,增加了指定类成员变量的初始化方式,这种方式其实在 gcc 中作为扩展很早就提供了,而且 C99 标准中也已经加入类似的语法对结构体(struct)进行初始化。
#include <iostream>
struct SA
{
int m_a;
int m_b;
};
struct SC
{
int m_c = 4;
struct SA m_d;
};
int main( int argc, char * argv[] )
{
struct SA a1 { .m_a = 1, .m_b { 2 } }; // <1> 支持等号或者大括号的初始化方式
struct SA a2 = { .m_b = 3 }; // <2> 可以跳过一些成员变量
struct SC c1 = { .m_d { .m_b = 4 } }; // <3> 可以嵌套,m_c未指定时使用默认值
std::cout << a1.m_a << " " << a1.m_b << std::endl;
return 0;
}
2024年10月11日
老张:小豆丁啊,你干啥呢?
小豆丁:我在学习啊......
老张:真的吗?
小豆丁:好吧,我承认,溜号了......
老张:就你那点小动作,还能逃出我的法眼!
小豆丁:额...你说的对...
老张:过来,问你一个问题,看看你掌握的怎么样?
小豆丁:说吧!
老张:给我解释下这行代码啥意思?
int arr[4] = {0};
小豆丁:这个难不住我,这行代码表示声明了一个数组,数组名字叫arr,数组有四个元素,每个元素都是整数类型的,每个元素初始的时候都被赋值为0!
2024年10月11日
C语言中实现数组是有数据相同的一系列元素组成。数组可以实现添加、删除元素等操作。那具体的这类功能该如何实现?
在使用数组之前需要对数组进行初始化的操作。在使用数组时会涉及到几个变量:数组的首地址、数组的长度、数组的有效个数。通过数组元素的首地址和数组的长度,我们能够获得整个数组;通过数组的有效个数,能够判断数组是否为空。我们可以利用结构体来进行处理,操作如下:
2024年10月11日
演示声明一维数组的方式,以 int 数组为例:
// 创建长度为:3 的 int 数组(其他数据类型方式相同),并赋值,以下写法都是正确的
int[] intArr= new int[3];
int[] intArr= {1, 2, 3};
int[] intArr = new int[]{1, 2, 3};
2024年10月11日
谈及 C++ 的初始化,我们都知道要在变量定义的时候给它赋初值。确实,在每次定义的时候就初始化不仅可以避免脏数据产生,还能增加代码的可读性。但是,你知道这其中有多少陷阱吗?
陷阱1:默认初始化的坑
请看一下代码,你能知道哪些变量的值是确定的?
2024年10月11日
在C中初始化数组极易出错,而且相当麻烦。C++通过“集合初始化”使其更安全。Java则没有象C++那样的“集合”概念,因为Java中的所有东西都是对象。但它确实有自己的数组,通过数组初始化来提供支持。
数组代表一系列对象或者基本数据类型,所有相同的类型都封装到一起——采用一个统一的标识符名称。数组的定义和使用是通过方括号索引运算符进行的(