实习冲刺Day12
算法题
爬楼梯
70. 爬楼梯 - 力扣(LeetCode)
递推写法
class Solution {
public:int climbStairs(int n) {int num[50];//开辟一个数组num[1]=1,num[2]=2;for(int i=3;i<=n;i++){num[i]=num[i-1]+num[i-2];}return num[n];}
};
递归写法
class Solution {
public:int climb(int n){if(n==1)return 1;if(n==2)return 2;return climb(n-1)+climb(n-2);}int climbStairs(int n) {int res= climb(n);return res;}
};
基础知识
1) 结构体和联合体有什么区别?能否在声明过程当中缺省名字?
联合说明和联合变量定义的形式为
数据类型 成员名
union peo{
int i;
};
最大的区别就是在内存利用方面
联合:各成员共用一块内存空间,并且同时只有一个成员可以得到这块内存的使用权(对该内存的读写),各变量共用一个内存首地址。因而,联合体比结构体更节约内存。联合的大小为其最大成员的大小
结构体的大小:等于所有成员大小之和,还会发生内存对齐的问题
struct u1
{int a;char b;short c;
}U1;
//大小为8字节
struct u2
{char b;int a;short c;
}U2;
//大小为12字节,按照内存最大的对齐
2)结构体可以包含函数吗?在 C 和 C++ 中有何不同?
在c语言中结构体不能包含函数
在C++中,结构体中可以包含函数
在c++中有类这一概念
结构体与类的区别
结构体的默认访问继承权限是公有的
类的默认访问继承权限是私有的