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;
        }
    
    }
  • 相关阅读:
    双链表
    单链表
    二叉树的遍历
    leetcode-9. 回文数
    leetcode-8. 字符串转换整数 (atoi)
    leetcode-7. 整数反转
    leetcode-6. Z 字形变换
    leetcode-5. 最长回文子串
    manacher-线性查找算法-(最长回文子串问题)
    bfprt-线性查找算法-(topK问题)
  • 原文地址:https://www.cnblogs.com/googlemeoften/p/5833970.html
Copyright © 2011-2022 走看看