zoukankan      html  css  js  c++  java
  • 腾讯模拟笔试题

    大概题意是这样的

    输入一个数字,顺时针生成一个N阶的矩阵

    比如:输入数字为: 3

    生成矩阵为:

    1 2 3

    8 9 4

    7 6 5

    解题思路:我们考虑一圈一圈的生成矩阵,先生成最外面的一圈,然后生成第二圈。。。。

    生成矩阵的时候我们要考虑边界的问题,通过矩阵的对角线的两个端点,因为矩阵是一个N x N的矩阵,所以就端点的x坐标和y坐标相等,用两个变量代替就ok

    参考代码:

    import java.util.Scanner;
    
    public class Solution {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int n = 2;
    
            int[][] arr = new int[n][n];
            int begin = 0;//端点1
            int end = n - 1;//端点2
            int num = 0;
            while (begin <= end) {
                num = getArray(arr, begin, end, num);
                begin++;
                end--;
            }
    
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < n; j++) {
                    System.out.print(arr[i][j] + " ");
                }
                System.out.println("");
            }
        }
    
        public static int getArray(int[][] arr, int begin, int end, int num) {
            if (begin == end) {
                arr[begin][end] = ++num;
            } else {
                int curR = begin;
                int curC = begin;
    
                while (curC < end)
                    arr[begin][curC++] = ++num;
                while (curR < end)
                    arr[curR++][end] = ++num;
                while (curC > begin)
                    arr[end][curC--] = ++num;
                while (curR > begin)
                    arr[curR--][begin] = ++num;
            }
            return num;
        }
    
    }
  • 相关阅读:
    运筹学 CheatSheet
    东南大学 2021 年夏季赛部分题解
    信号与系统期末复习精要
    信号量的基本同步模式
    OpenMP入门:求pi
    肉眼可见的 Z 变换性质
    操作系统概念 第7章 死锁
    操作系统概念 第10章 文件系统接口
    操作系统概念 第9章 虚拟内存
    操作系统概念 第8章 内存管理
  • 原文地址:https://www.cnblogs.com/googlemeoften/p/5833970.html
Copyright © 2011-2022 走看看