当前位置: 首页 > article >正文

精选算法编程题

一、有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

示例 1:

  • 输入:nums = [-4,-1,0,3,10]
  • 输出:[0,1,9,16,100]
  • 解释:平方后,数组变为 [16,1,0,9,100],排序后,数组变为 [0,1,9,16,100]

示例 2:

  • 输入:nums = [-7,-3,2,3,11]
  • 输出:[4,9,9,49,121]

二、螺旋矩阵

给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

示例:

输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]

public class test2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[][] nums = generateMatrix(n);
        for (int i = 0; i < n; i++){
            for (int j = 0; j < n; j++){
                System.out.print(nums[i][j] + " ");
            }
            System.out.println();
        }
    }
    public static int[][] generateMatrix(int n) {
        int[][] nums = new int[n][n];
        int startX = 0, startY = 0;
        int count = 1;
        int loop = 0; // 起始为0

        while (loop < n / 2) {
            // 顶部 左闭右开
            for (int j = startY; j < n - 1 - loop; j++) {
                nums[startX][j] = count++;
            }
            // 右列 左闭右开
            for (int i = startX; i < n - 1 - loop; i++) {
                nums[i][n - 1 - loop] = count++;
            }
            // 底部 左闭右开
            for (int j = n - 1 - loop; j > loop; j--) {
                nums[n - 1 - loop][j] = count++;
            }
            // 左列 左闭右开
            for (int i = n - 1 - loop; i > loop; i--) {
                nums[i][loop] = count++;
            }
            startX++;
            startY++;
            loop++;
        }

        // 如果n为奇数,填充中心位置
        if (n % 2 == 1) {
            nums[n / 2][n / 2] = count;
        }
        return nums;
    }
}


http://www.kler.cn/news/284716.html

相关文章:

  • redis的共享session应用
  • 数据备份-linux之间同步目录和文件
  • Vue3中的ref与reactive区别
  • JavaWeb - Spring Boot
  • 【建造者】设计模式:构建复杂对象的艺术
  • Cortex-A7支持的内存类型详解及配置举例
  • 07:为电源和GND分配网络颜色
  • 数据结构的三要素以及数据类型和抽象数据类型
  • PMP–知识卡片--SCQA金字塔表达
  • A\B求解将 B转换到 A 的坐标系中的变换
  • 数据结构之 队列入门 队列例程 队列例程分析
  • BaseCTF-Web-Week2-WP
  • 【自动化测试】处理页面加载元素过慢以及页面中存在frame框架页问题
  • Ableton Live 12 Suite:专业音乐制作的创新之选
  • 数据结构与算法——Java实现 3.二分查找——Java版
  • 激光雷达定位算法在FPGA中的实现——section2 全局坐标和角度计算
  • 小程序全局挂载对像
  • SQL经典五十道选刷
  • ffmpeg各模块常用组件源码位置
  • C++(1)基础语法
  • 【3.6】贪心算法-解救生艇问题
  • 目标检测之困难目标检测任务综述
  • SpringBoot异常处理原理分析
  • JMeter 工具安装以及简单使用
  • 人工智能再次进化 善用AI提升营运效率
  • 力扣234题详解:回文链表的多种解法与模拟面试问答
  • scrapy学习笔记0828-下
  • 《自然语言处理》—— 词向量之CountVectorizer方法实现
  • raksmart机云大宽带服务器托管服务内容
  • 安防视频汇聚平台EasyCVR启动后无法访问登录页面是什么原因?