JS实现螺旋矩阵


  螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环,接下来用JS实现螺旋矩阵。
  核心点是在特殊拐点以及缩短环数处做操作。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<style>
* {
margin: 0;
padding: 0;
}
li {
list-style: none;
}
#ul1 {
margin: 20px auto;
overflow: hidden;
border: 1px #000 solid;
border-right: none;
border-bottom: none;
}
#ul1 li {
float: left;
border: 1px #000 solid;
border-left: none;
border-top: none;
text-align: center;
line-height: 50px;
}
</style>
<body>
<ul id="ul1">
</ul>
</body>
<script >
let oUl = document.getElementById('ul1')
let aLi = document.getElementsByTagName('li')
let sizeGrid = 50
let size = 8

let len = size * size
oUl.style.width = size * (sizeGrid + 1) + 'px'
for (let i = 0; i < len; i++) {
  let oLi = document.createElement('li')
  oLi.style.width = sizeGrid + 'px'
  oLi.style.height = sizeGrid + 'px'
  oUl.appendChild(oLi)
}

let row = 0
let col = 0
let min = 0
let max = size - 1

for (let i = 0; i < len; i++) {
  aLi[row * size + col].innerHTML = i
  if (row == min && col <  max) { // 拐点
    col = col + 1
  } else if (col == max && row < max) { // 拐点
    row = row + 1
  } else if (row == max && col > min) { // 拐点
    col = col - 1
  } else if (col == min && row > min) { // 拐点
    row = row - 1
  }
  if (row - 1 == min && col == min) { // 缩短环数
    min = min + 1
    max = max - 1
  }
}

</script>
</html>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 螺旋矩阵和蛇型矩阵,是两个比较有趣的矩阵问题,这两个问题的答案也有许多种,简单问一下Baidu,就各自有N种实现,...
    smallfisher阅读 5,390评论 0 1
  • 螺旋矩阵 什么是螺旋矩阵? 螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大...
    扯扯_2c79阅读 10,118评论 0 2
  • 随便写的 还有待改进好像可以用递归,这里相对暴力点螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变...
    锦绣拾年阅读 3,811评论 0 0
  • 太极拳的锻炼要领 2018-04-04夏瑞璋和美太极 《和美太极》中国专业太极微刊 在昨天讲太极拳的动作步骤...
    阿德乐阅读 4,631评论 0 1
  • 我偏不信邪! 1,他妈的T我又不行 2,他妈的找他私聊也不行 3,他妈的找他群更加不行不行 4,他妈的大家不聊闭嘴...
    鸽飞飞阅读 3,126评论 0 0

友情链接更多精彩内容