Swift-二维数组旋转

题目:给定一个N*N的二维数组,将二维数组旋转90度.

核心代码:

   func rotate(data:inout [[Int]],n:Int)  {
        
        for layer in 0..<n / 2 {
            let first:Int = layer
            let last:Int = n - 1 - first
            for i in first..<last {
                
                let offset:Int = i - first
                let top:Int = data[first][i] // top 数值
                
                data[first][i] = data[last - offset][first] // 从左到上
                
                data[last - offset][first] = data[last][last - offset] // 从下到左
                
                data[last][last - offset] = data[i][last] // 从右到下
                
                data[i][last] = top // 从上到右
            }
        }
    }

测试代码:

var rotateData:[[Int]] = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
myString.rotate(data: &rotateData, n: 4)
print("FlyElephant--数组旋转90度数据---\(rotateData)")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,695评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,326评论 25 708
  • 我是二公司汪春杰,我演讲的题目是《公交人的履职尽责》。 履职尽责就是尽自己最大的努力来完成自己的职责和对其负责。那...
    陋室鳴阅读 1,223评论 0 1
  • 4月份的目标: 每天学习专业知识2小时,读课外书1小时 每天练习英语口语30分钟。 高质量陪伴宝宝30分钟。 每天...
    遇见心想事成的自己阅读 234评论 0 0
  • 和大学的舍长聊到了11点,本来8点就困意横生的我,此刻却没有半点睡意。反正这几天晚上都一直做噩梦,早点睡觉也只能梦...
    宋晚来阅读 525评论 0 0

友情链接更多精彩内容