golang 多维数组

具体的题目如下:(就是将多维数组的行列互换)

A multi-dimensional array is an array of arrays. 2-dimensional arrays are the most commonly used. They are used to store data in a tabular manner.

Consider following 2D array, which is of the size 3×53×5. For an array of size N×MN×M, the rows and columns are numbered from 00 to N−1N−1 and columns are numbered from 00 to M−1M−1, respectively. Any element of the array can be accessed by arr[i][j]arr[i][j] where 0≤i<N0≤i<N and 0≤j<M0≤j<M. For example, in the following array, the value stored at arr[1][3]arr[1][3] is 1414.

golang 代码如下:

其中定义二维数组没有什么复杂的,在赋值的过程中我们需要先定义一个一维数组 carray := make([]int, column, column),然后在赋值给外面的数组 array[i] =carray

下来就是字符串拼接和其他的语言不太一样,先定义一个var buffer bytes.Buffer, 然后写数据buffer.WriteString("ddd"),最后就是输出 buffer.String()

还有就是一些数值和字符的互相转换用到了包strconv

package main

import "fmt"
import "strconv"
import "bytes"

func main() {
  var row,column int
  fmt.Scanln(&row,&column)
  var array = make([][]int,row,row)
  for i:=0;i<row;i++{
      carray := make([]int, column, column)
      for j:=0;j<column;j++{
      var columnValue string
      fmt.Scan(&columnValue)
      //fmt.Println(columnValue)
      intv,_:= strconv.Atoi(columnValue)
      carray[j] = intv
      }
      array[i] =carray
  }
  //fmt.Println(array)
  var buffer bytes.Buffer
  for i:=0;i<column;i++{
      buffer.Reset()
      for j:=0;j<row;j++{
      buffer.WriteString(strconv.Itoa(array[j][i])+" ")
      }
      fmt.Println(buffer.String())
  }
}
时间: 2024-08-29 01:33:46

golang 多维数组的相关文章

golang中的数组

概念:指同一系列同一类型数据的集合. 声明方法如下: [32]byte                          //长度为32的数组 [2*N] struct { x, y int32}  //复杂类型的数组 [1000]*float64                //指针数组 [3][5]int                          //二维数组 [2][2][2]float64              //等同于[2]([2]([2]float64)) 获取数组长

14-高效求最长公共子序列(二维数组存不下)

/*                                   See LCS again时间限制:1000 ms  |  内存限制:65535 KB难度:3 描述 There are A, B two sequences, the number of elements in the sequence is n.m; Each element in the sequence are different and less than 100000. Calculate the length

java基础:java中的二维数组

二维数组的概念: 一个元素为一维数组的数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的元素有多少个. 注意: A:以下格式也可以表示二维数组 a:数据类型 数组名[][] = new 数据类型[m][n]; b:数据类型[] 数组名[] = new 数据类型[m][n]; B:注意下面定义的区别 int x; int y; int x,y; int[] x; int[] y[]; int[] x,y[

二维数组

int[][]arr; arr=new int[5][6];//定义二维数组 int [][]grade=new int [5][6]//直接定义 for each循环:不使用下表就能访问: int=[]mum={12345} for(int a :m){ System.out.print(a)}  //num数组  a 12345;

三维及多维数组

所有数组都看作一维数组: 一维:不可分割,每个元素即为数据: int a[3]={1,2,3}; 二维:每个元素是一维数组的一维数组: int a[2][2]={ {1,2}, {3,4} }; 三维:每个元素是二维数组的一维数组: int a[2][2][2]={ { {1,2} ,{3,4} }, { {3,4},{4,5} }, };

二维数组与指针

二维数组: int / char / flaot a[n][m]; 可以看做是将一维数组做为基本类型产生的一维数组的数组类型,共n*m个最基本类型.这样看有许多优点(实际上计算机也是这样分配的). 二维数组数组名的注意事项: 1 #include <stdio.h> 2 int main() 3 { 4 int *p,a[3][4]; 5 p = a;//a是二维数组的首地址本质为行指针,原型为 a[][]:无法赋值给普通指针类型 *p: 6 return 0; 7 } 编译就会出现如下错误

二维数组中的查找-牛客网-剑指offer

1.问题描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 2.问题分析 水平方向.垂直方向二重循环查找 3.源代码 package www.nowcoder.com.conquerOffer.array; /** * 二维数组中的查找 * 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整

面试题3 ----二维数组中的查找

题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 在剩下的两行两列4个数字中,位于右上角的刚好就是我们要查找的数字7,于是查找过程就可以结束了. 矩阵的加阴影背景的区域是下一步查找的范围.代码如下: bool Find(int* matrix,int  rows,int columns,int number) { bool found = false; if (matri

qsort 函数的使用——对普通数组、指针数组、二维数组中的元素进行排序

在ANSI C中,qsort函数的原型是 #include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *)); 解释:qsort函数对含有nmemb个元素的数组进行排序,而base指针指向数组的第一个元素.这个数组的元素个数由size指定. compar函数对qsort的比较操作进行定义,所以可以定制数字的比较,字符串的比较,甚至结构体