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;
        }
    
    }
  • 相关阅读:
    jsp大文件(视频)上传问题
    python多版本的pip共存问题解决办法
    buntu系统安装rpm包的方法
    如何查看linux是32位还是64位
    python的if else
    python获取列表唯一值
    python列表转数组
    python文件操作write与writelines的区别
    python中字符串str的strip()方法
    ubuntu16.04安装cloudcompare及打开方法
  • 原文地址:https://www.cnblogs.com/googlemeoften/p/5833970.html
Copyright © 2011-2022 走看看