二维数组与交错数组的理解

1:数组:

//二维数组 表示1个表格.

//交错数组的本质是1个1维数组
//行固定 但是每1行的列数不固定
//string[][] arr = new
string[3][];
//arr[0] = new string[4];
int[][]
arr = { new int[] { 1, 2, 3 }, new int[] { 1, 2, 3, 4, 5, 5 } };

// int[] arr = { 1,2,3,4,5};

//行列都固定的情况下 使用二维数组.
// string[,] arr = new
string[4, 4];
//arr[0, 0] = "小明";
//arr[0, 1] =
"1200";
//arr[0, 2] = "55";
//arr[0, 3] =
"10";
//4 小明 小花 小张 小龙 销售记录 花费 客户的数量
int[,] arr = { { 1,
2, 3, 4, 5 }, { 1, 2, 3, 4, 10 } };

二维数组与交错数组的理解,布布扣,bubuko.com

时间: 2024-12-28 11:00:30

二维数组与交错数组的理解的相关文章

C#中的多维数组和交错数组

C#中有多维数组和交错数组,两者有什么区别呢! 直白些,多维数组每一行都是固定的,交错数组的每一行可以有不同的大小. 以二维的举例,二维数组就是m×n的矩阵,m行n列:而交错数组(又叫锯齿数组)有m行,但是每一行不一定是n列.Got it? 还有要注意C#中的数组也是一种类型(C++中不是)! 下面看实例: 二维数组: public static void Main() { int row = 5; int column = 5; int[,] matrix = new int[row, col

c# 多维数组、交错数组(转化为DataTable)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; namespace ConsoleApplication31 { class Program { public static Array ReturnArray() { string[,,] arr = new string[2,

hdu1081 DP类最长子段和(二维压缩+前缀和数组/树状数组计数)

题意:给出一个 n * n 的数字矩阵,问最大子矩阵和是多少. 由于和最长子段和问题类似,一开始想到的就是 DP ,一开始我准备用两个循环进行 DP ,对于每一个 (i,j) ,考察(i - 1,j)与(i,j - 1), dp 值代表以该点为右下角的最大矩阵和,同时记录下这个矩阵的左上角坐标,状态转移时通过将原和最大矩阵通过补边推到当前和最大矩阵.但是其实这种做法有一个明显的问题,就是转移时,补上边后 dp 值相同怎么办,dp 值相同而矩阵不同的话会影响到下一次状态转移后补上的矩阵的情况,从而

二维最大和子数组

1.设计思路 因为计算了一位的最大和子数组,所以想办法将二维的数组转换成一维子数组进行求解: 首先,将二维数组的第一行(列)赋值到新的一维数组中,在一维的数组中求得子数组的最大值, 然后,将二维数组的第二行(列)加到一维数组中,再次求得子数组的最大值,并和第一步求得的最大值进行比较,若新的值比较大,留下最大值,如果新值比较小,退出这一个循环,从第二行(列)开始第一步,这样就可以求出最大和子数组: 2.源代码 #include<iostream> #include<ctime> us

$[SHOI2007]$ 园丁的烦恼 二维数点/树状数组

\(Sol\) 设一个矩阵的左上角为\((x_1,y_1)\),右下角为\((x_2,y_2)\),\(s_{x,y}\)是到\((1,1)\)二维前缀和,那么这个矩阵的答案显然是\(s_{x_2,y_2}-s_{x_1-1,y_2}-s_{x_2,y_1-1}+s_{x_1-1,x_2-1}\).考虑把每个询问拆成这么四个二维前缀和的询问.将所有询问的\(s_{x,y}\)按照\(x\)排序,依次计算,这样我们就可以忽略\(x\)的限制而只考虑\(y\)的限制了.每次扫到一个询问,先把\(x\

【BZOJ】1047: [HAOI2007]理想的正方形(单调队列/~二维rmq+树状数组套树状数组)

http://www.lydsy.com/JudgeOnline/problem.php?id=1047 树状数组套树状数组真心没用QAQ....首先它不能修改..而不修改的可以用单调队列做掉,而且更快,只有O(n^2).而这货是n^2log^2n的建树...虽然查询是log^2n...但是建树那里就tle了.. 那么说题解... 先orz下,好神.. 我怎么没想到单调队列orz 首先我们维护 行 的单调队列,更新每个点在 列 距离内的最小and最大的值 然后我们维护 列 的单调队列,更新每个点

poj 2155 Matrix(二维树树状数组)

Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 19113   Accepted: 7193 Description Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the i-th row and j-th column. Initially we have A[i, j] = 0 (1

多维数组与交错数组的转换

public static void Test1() { double[][] arr = new double[2][]; arr[0] = new double[2]; arr[1] = new double[2]; arr[0][0] = 666; //for (int i = 0; i < 2; i++) //{ // for (int j = 0; j < 2; j++) // { // arr[i, j] = i*2+j; // } //} Array array = arr; u

c++ 依据输入动态声明数组(一维,二维)

较早的编译器是不同意这样做的,所以一些书籍比方以Tc解说的书本都说数组的下标不能是变量.在vc6.0下亦是如此. 只是在一些较新的编译器如dev c++已经支持了,例如以下代码不会报错 #include <stdio.h> #include <stdlib.h> int main() { int a; int i; scanf("%d",&a); int c[a]; for( i =0 ;i<a;i++) scanf("%d",