zoukankan      html  css  js  c++  java
  • 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

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    等级,
    JS高阶---回调函数
    JS高阶---函数
    JS高阶---对象
    JS高阶---数据、变量、内存
    JS高阶---简介+数据类型
    JS里==和===区别
    vue中assets和static的区别
    vue2.0 实现导航守卫(路由守卫)---登录验证
    exports与module.exports,export与export default 之间的关系和区别
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/11671578.html
Copyright © 2011-2022 走看看