设为首页 加入收藏

TOP

LeetCode刷题第一周(三)
2023-07-25 21:30:40 】 浏览:63
Tags:LeetCode
, 0) + 1);//往篮子里面放水果 while(map.size() > 2){//放进去的水果不符合水果类型 map.put(fruits[left], map.get(fruits[left]) - 1); if(map.get(fruits[left]) == 0){ map.remove(fruits[left]); } left++; } maxNumber = Math.max(maxNumber, right - left + 1); } return maxNumber; } }

螺旋矩阵 II

59

class Solution {
    public int[][] generateMatrix(int n) {
        // 方法一:直接按序输出
        int[][] arr = new int[n][n];
         int top = 0;
         int buttom = n - 1;
         int left = 0;
         int right = n - 1;;
         int index = 1;
         while(left <= right && top <= buttom && index <= n*n){
             for(int i = left; i <= right; i++){
                 arr[top][i] = index++;
             }
             top++;
             for(int i = top; i <= buttom; i++){
                 arr[i][right] = index++;
             }
             right--;
             for(int i = right; i >= left; i--){
                 arr[buttom][i] = index++;
             }
             buttom--;
             for(int i = buttom; i >= top; i--){
                 arr[i][left] = index++;
             }
             left++;
         }
         return arr;
    }
}

54

class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        int top = 0;
        int buttom = matrix.length - 1;
        int left = 0;
        int right = matrix[0].length - 1;
        List<Integer> list = new ArrayList<Integer>();
        while(left <= right && top <= buttom){
            for(int i = left; i <= right; i++){
                if(top <= buttom)
                list.add(matrix[top][i]);
            }
            top++;
            for(int i = top; i <= buttom; i++){
                if(left <= right)
                list.add(matrix[i][right]);
            }
            right--;
            for(int i = right; i >= left; i--){
                if(top <= buttom)
                list.add(matrix[buttom][i]);
            }
            buttom--;
            for(int i = buttom; i >= top; i--){
                if(left <= right)
                list.add(matrix[i][left]);
            }
            left++;
        }
        return list;
    }
}

29 、顺时针打印矩阵

class Solution {
    public int[] spiralOrder(int[][] matrix) {
        if(matrix.length == 0){
            return new int[0];
        }
        int top = 0;
        int buttom = matrix.length - 1;
        int left = 0;
        int right = matrix[0].length - 1;
        int[] arr = new int[matrix.length*matrix[0].length];
        int index = 0;
        while(left <= right && top <= buttom){
            for(int i = left; i <= right; i++){
                if(top <= buttom)
                arr[index++] = matrix[top][i];
            }
            top++;
            for(int i = top; i <= buttom; i++){
                if(left <= right)
                arr[index++] = matrix[i][right];
            }
            right--;
            for(int i = right; i >= left; i--){
                if(top <= buttom)
                arr[index++] = matrix[buttom][i];
            }
            buttom--;
            for(int i = buttom; i >= top; i--){
                if(left <= right)
                arr[index++] = matrix[i][left];
            }
            left++;
        }
        return arr;
    }
}

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇微服务框架:如果不用 Spring Boo.. 下一篇Spring Boot 项目自定义 banner

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目