• leetcode——48. 旋转图像


    可能是找到了对的学习方法,更有感觉,就清晰地做出来就觉得很开心。

    class Solution(object):
        def rotate(self, matrix):
            """
            :type matrix: List[List[int]]
            :rtype: None Do not return anything, modify matrix in-place instead.
            """
            l=len(matrix)
            if l<2:
                return matrix
            for i in range(l):
                matrix[i]=matrix[i][::-1]
            i=0
            while i<len(matrix)-1:
                j=0
                while i+j<len(matrix)-1:
                    matrix[i][j],matrix[l-j-1][l-i-1]=matrix[l-j-1][l-i-1],matrix[i][j]
                    j+=1
                i+=1
            return matrix
    执行用时 :24 ms, 在所有 python 提交中击败了86.87%的用户
    内存消耗 :11.8 MB, 在所有 python 提交中击败了25.46%的用户

    每次性能也还可以。

    先旋转再对调。

    但是厉害的人还是好厉害!!!!

    执行用时为 12 ms 的范例
    class Solution(object):
        def rotate(self, matrix):
            """
            :type matrix: List[List[int]]
            :rtype: None Do not return anything, modify matrix in-place instead.
            """
            matrix[:]=map(list,zip(*matrix[::-1]))

    这里用到了map()函数:

    用到了zip()函数:

    描述

    zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

    如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

    zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。

    这种解法很神奇了。

    厉害了。

                                                                   ——2019.10.14


    到底还是有规律可循

    做出来了。

    public void rotate(int[][] matrix) {
            int len = matrix.length;
            if(len <= 1){
                return;
            }
            for(int i = 0;i<(len+1)/2;i++){
                for(int j = i;j<len - i - 1;j++){
                    int temp = matrix[i][j];
                    matrix[i][j] = matrix[len - 1 - j][i];
                    matrix[len - 1 - j][i] = matrix[len - 1 - i][len - 1 - j];
                    matrix[len - 1 - i][len - 1 - j] = matrix[j][len - 1 - i];
                    matrix[j][len - 1 - i] = temp;
                }
            }
        }

    ——2020.7.10

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    深入Java虚拟机(4)——网络移动性
    安装ftp碰到的问题及解决方法
    6.设置ListView的Item的高度无效
    hdu1181(变形课)
    ZooKeeper分布式集群部署及问题
    管理线程之创建线程
    Linux系统编程——多线程实现多任务
    Request.Params用法,后台接收httpget参数
    resharper警告 :linq replace with single call to FirstOrDefault
    SQL Prompt几个快捷键
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/11671578.html
Copyright © 2020-2023  润新知