首页 > 其他分享 >剑指 Offer 29. 顺时针打印矩阵

剑指 Offer 29. 顺时针打印矩阵

时间:2023-05-17 10:35:49浏览次数:39  
标签:顺时针 matrix Offer int res ++ 29 break --

题目描述:

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。

 

限制:

  • 0 <= matrix.length <= 100
  • 0 <= matrix[i].length <= 100

 

 

 

class Solution{
    public int[] spiralOrder(int matrix[][]){
        if(matrix.length==0) return new int[0];
        int l=0,r=matrix[0].length-1,t=0,b=matrix.length-1,x=0;
        int res[] = new int[(r+1)*(b+1)];
        while(true){
            for(int i=l;i<=r;i++) res[x++] = matrix[t][i];
            if(++t>b) break;
            for(int i=t;i<=b;i++) res[x++] = matrix[i][r];
            if(l>--r) break;
            for(int i=r;i>=l;i--) res[x++] = matrix[b][i];
            if(t>--b) break;
            for(int i=b;i>=t;i--) res[x++] = matrix[i][l];
            if(++l>r) break;
        }
        return res;
    }
}

 

标签:顺时针,matrix,Offer,int,res,++,29,break,--
From: https://www.cnblogs.com/zhz123567/p/17407743.html

相关文章

  • 代码随想录算法训练营第8天 | ● 344.反转字符串 ● 541. 反转字符串II ● 剑指Offer
     第四章 字符串part01  今日任务  ●  344.反转字符串●  541. 反转字符串II●  剑指Offer 05.替换空格●  151.翻转字符串里的单词●  剑指Offer58-II.左旋转字符串  详细布置   344.反转字符串  建议: 本题是字符串基础题目,就是考察......
  • (双指针)剑指 Offer 22. 链表中倒数第k个节点
    题目描述:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。    classSolution......
  • day 29 勾股数
    1.循环遍历a,b;2.找出a*a+b*b的平方根为整数的情况;3.输出a,b,c #include<iostream>#include<cmath>usingnamespacestd;intmain(){for(inta=1;a<=100;a++){for(intb=1;b<=100;b++){doublec=sqrt(a*a+b*b);if(c==(int)c&&c<=10......
  • 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
    题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。 提示:0<=nums.length<=500000<=nums[i]<=10000   复杂度分析:时间复杂度O(N):N为数组nums长度,双指针i,j共同遍历整个......
  • c++打卡练习(29)
    求一百以内的勾股数流程图:伪代码:源代码:#include<iostream>usingnamespacestd;intmain(){ inta,b,c,i,j,k; for(a=1;a<=100;a++){ for(b=a+1;b<=100;b++){ for(c=b+1;c<=100;c++){ if(a*a+b*b==c*c){ cout<<a<<""<<b<<......
  • 剑指 Offer 20. 表示数值的字符串
    题目描述:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。   classSolution{publicbooleanisNumber(Strings){if(s==null||s.length()==0)returnfalse;//s为空对象或s长度为0(空字符串)时,不能表示数值charstr[]=s.trim()......
  • 3D打印机报错!! {"code":"key243","msg":"Move out of range: 20.852 29.68
    修改配置文件stepper_z的配置终点需要改下,看你热床允许的倾斜度,相对于归零点,负的,最大的值 ......
  • 剑指 Offer 18. 删除链表的节点
    题目描述:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。     复杂度分析:  时间复杂度O(N):N为链表长度,删除操作平均需循环N/2次,最差N次。  空间复杂度O(1):cur,pre占用常数大小额外空间。class......
  • 剑指 Offer 03. 数组中重复的数字
    题目找出数组中重复的数字。在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。其中,2<=n<=100000示例输入:[2,3,1,0,2,5,3]输出:2或3......
  • 【LeetCode剑指offer#04】包含min函数的栈、栈的压入、弹出序列(辅助栈的应用)
    包含min函数的栈https://leetcode.cn/problems/bao-han-minhan-shu-de-zhan-lcof/定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数在该栈中,调用min、push及pop的时间复杂度都是O(1)。示例:MinStackminStack=newMinStack();minStack.push(-2);......