我的知识梳理-数组

int[] data = new int[100];data[0]  = 1;
int[][] data2 = new int[100][100]; data[0][0] = 1;
  1. 数组是最简单、也是使用最广泛的数据结构。栈、队列等其他数据结构均由数组演变而来。
  2. 数组分为1维数组和多维数组
  3. 数组是定长的,如果取数组时超出了长度,则会报错
  4. 数组常见面试题
    1. 寻找数组中第二小的元素
      private static int findTheMinimumButOne(int[] arr) {
              if (arr.length <= 1) {
                  throw new RuntimeException("要找倒数第二小的数,最少要有两个元素!");
              }
              int minimumOne;
              int minimumButOne;
              if (arr[0] < arr[1]) {
                  minimumOne = arr[0];
                  minimumButOne = arr[1];
              } else {
                  minimumOne = arr[1];
                  minimumButOne = arr[0];
              }
              for (int i = 2; i < arr.length; i++) {
                  int one = arr[i];
                  if (one < minimumOne) {
                      minimumButOne = minimumOne;
                      minimumOne = one;
                  } else if (one < minimumButOne && one != minimumOne) {
                      minimumButOne = one;
                  }
      
              }
              return minimumButOne;
          }
    2. 合并两个有序数组
      private static int[] mergeTwoSortedArr(int[] arr1, int[] arr2) {
          int[] arr = new int[arr1.length + arr2.length];
      
          int arr1Index = 0;
          int arr2Index = 0;
          for (int i = 0; i < arr.length; i++) {
              if (arr1Index >= arr1.length) {
                  arr[i] = arr2[arr2Index];
                  arr2Index++;
                  continue;
              }
              if (arr2Index >= arr2.length) {
                  arr[i] = arr1[arr1Index];
                  arr1Index++;
                  continue;
              }
              int i1 = arr1[arr1Index];
              int i2 = arr2[arr2Index];
              if (i1 < i2) {
                  arr[i] = i1;
                  arr1Index++;
              } else {
                  arr[i] = i2;
                  arr2Index++;
              }
          }
          return arr;
      }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值