当前位置: 首页 > news >正文

php网站做退出的代码wordpress添加字体颜色

php网站做退出的代码,wordpress添加字体颜色,花都定制型网站建设,甜品网站设计思想引言:在计算机编程领域,二维动态数组是一种能够在程序运行期间动态调整其大小的二维数组数据结构。它与静态二维数组的关键区别在于,静态二维数组在编译时就需要确定其大小,而二维动态数组的大小可以在程序运行过程中根据实际需求…
引言:在计算机编程领域,二维动态数组是一种能够在程序运行期间动态调整其大小的二维数组数据结构。它与静态二维数组的关键区别在于,静态二维数组在编译时就需要确定其大小,而二维动态数组的大小可以在程序运行过程中根据实际需求进行灵活调整。

下面以杨辉三角为例来讲解一下动态二维数组的底层:

// 以杨辉三角的前n行为例:假设n为5
void test2vector(size_t n)
{// 使用vector定义二维数组vv,vv中的每个元素都是vector<int>aramae::vector<aramae::vector<int>> vv(n);// 将二维数组每一行中的vecotr<int>中的元素全部设置为1for (size_t i = 0; i < n; ++i)vv[i].resize(i + 1, 1);// 给杨辉三角出第一列和对角线的所有元素赋值for (int i = 2; i < n; ++i){for (int j = 1; j < i; ++j){vv[i][j] = vv[i - 1][j] + vv[i - 1][j - 1];}}
}

aramae::vector<aramae::vector<int>> vv(n); 构造一个vv动态二维数组,vv中总共有n个元素,每个元素都是vector类 型的,每行没有包含任何元素,如果n为5时如下所示:


例题:杨辉三角 之内存分配 C/C++ 

118. 杨辉三角

给定一个非负整数 numRows生成「杨辉三角」的前 numRows 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例 1:

输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

输入: numRows = 1
输出: [[1]]
1. C 语言实现的动态内存分布

在 C 语言中,杨辉三角通常用二维指针数组实现,内存分配分为两个步骤:

int** generate(int numRows, int* returnSize, int** returnColumnSizes) {// 1. 分配行指针数组int** triangle = (int**)malloc(numRows * sizeof(int*));*returnSize = numRows;*returnColumnSizes = (int*)malloc(numRows * sizeof(int));// 2. 为每行分配元素数组for (int i = 0; i < numRows; i++) {(*returnColumnSizes)[i] = i + 1;triangle[i] = (int*)malloc((i + 1) * sizeof(int));// ... 初始化元素 ...}return triangle;
}

内存布局示意图 

triangle指针       行指针数组          每行的元素数组
┌───────┐          ┌───────┐          ┌───────┐
│ 0x100 │─────────▶│ 0x200 │─────────▶│ 1     │  第0行
└───────┘          ├───────┤          └───────┘│ 0x300 │─────────▶│ 1     │  第1行├───────┤          ├───────┤│ 0x400 │─────────▶│ 1     │  第2行├───────┤          ├───────┤│ ...   │          │ 2     │└───────┘          ├───────┤│ 1     │└───────┘...

代码实现:

#include <stdio.h>
#include <stdlib.h>int** generate(int numRows, int* returnSize, int** returnColumnSizes) {// 分配二维数组的内存,存储杨辉三角的每一行int** triangle = (int**)malloc(numRows * sizeof(int*));*returnSize = numRows;*returnColumnSizes = (int*)malloc(numRows * sizeof(int));for (int i = 0; i < numRows; i++) {// 每一行有i+1个元素(*returnColumnSizes)[i] = i + 1;triangle[i] = (int*)malloc((i + 1) * sizeof(int));// 每行的首尾元素为1triangle[i][0] = 1;triangle[i][i] = 1;// 计算中间元素的值for (int j = 1; j < i; j++) {triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];}}return triangle;
}int main() {int numRows = 5;int returnSize;int* returnColumnSizes;int** triangle = generate(numRows, &returnSize, &returnColumnSizes);// 打印杨辉三角for (int i = 0; i < returnSize; i++) {for (int j = 0; j < returnColumnSizes[i]; j++) {printf("%d ", triangle[i][j]);}printf("\n");// 释放每行的内存free(triangle[i]);}// 释放二维数组和列大小数组的内存free(triangle);free(returnColumnSizes);return 0;
}

 2. C++ vector 实现的动态内存分布

C++ 的vector<vector<int>>实现方式更简洁,但内存布局类似:

vector<vector<int>> generate(int numRows) {vector<vector<int>> triangle(numRows);for (int i = 0; i < numRows; i++) {triangle[i].resize(i + 1);// ... 初始化元素 ...}return triangle;
}

 内存布局示意图

triangle对象         外层vector数据       每行的vector数据
┌───────────┐        ┌───────────┐        ┌───────────┐
│ size: 5   │        │ 0x300     │        │ capacity:1│
│ capacity:5│        ├───────────┤        ├───────────┤
│ data:0x200│───────▶│ 0x400     │        │ size:1    │
└───────────┘        ├───────────┤        │ data:0x300││ 0x500     │        └───────────┘├───────────┤        ┌───────────┐│ 0x600     │        │ capacity:2│├───────────┤        ├───────────┤│ 0x700     │        │ size:2    │└───────────┘        │ data:0x400│└───────────┘...

代码实现:

class Solution {
public:vector<vector<int>> generate(int numRows) {vector<vector<int>> vv;vv.resize(numRows);for(int i = 0; i < numRows;++i){vv[i].resize(i+1);vv[i][0]= vv[i][i]=1;for(int j = 1;j < i;j++){vv[i][j] = vv[i-1][j-1] + vv[i-1][j];}}return vv;}
};
http://www.dtcms.com/a/519657.html

相关文章:

  • 2025年--Lc208- 415. 字符串相加(双指针)--Java版
  • ELK 日志管理系统相关内容总结
  • 如何使用 Ansible 安装 Docker
  • 图片批量压缩工具,快速减小文件体积
  • 安卓 ContentProvider 详解:跨应用数据共享的核心方案
  • 光速不变性的几何本源:论张祥前统一场论中光速的绝对性与表观变异
  • 微算法科技(NASDAQ MLGO)基于区块链点阵加密算法的物联网轻量级方案:构建物联网安全基石
  • C++---typename关键字
  • 搭建网站怎么做哪里有做推文的网站
  • Spring Data R2DBC-redis和多数据源
  • 基于单片机的人体红外传感的步进电机调速自动门智能控制系统设计
  • 本地环境部署LangGraph
  • 在 R 医学数据分析中,关于 RStudio 和 VSCode 哪个效率更高
  • GPIO引脚操作方法概述
  • APP 开发抉择:定制服务与模板套用如何选?
  • 工程经理应该(有时候)写代码
  • Linux:进程间通信(1)
  • 基于ORB-SLAM、A*及DWA的自主导航方案
  • 阜新网站开发公司dede手机网站建设教程
  • 网站搭建价格宁波网站优化技术
  • 达梦数据库怎么查看连接情况
  • UVa1497/LA5719 A Letter to Programmers
  • 谷歌Quantum Echoes算法:迈向量子计算现实应用的重要一步
  • 网络管理员教程(初级)第六版--第2章 局域网技术
  • PY32F040单片机介绍(1)
  • 数据库多表关系、查询与约束
  • 空调设备公司网站建设建设部网站社保联网
  • 济源网站建设电话锦州做网站的个人
  • 逻辑推演题——谁是骗子
  • 单位网站建设汇报材料wordpress菜单保存不