前端查询后矩阵的和

// 创建一个 n x n 的二维数组并初始化为 0
function createMatrix(n) {
  // 创建一个长度为 n 的数组
  let matrix = new Array(n);
  
  // 遍历数组,将每个元素设为长度为 n 的新数组,并初始化所有值为 0
  for(let i = 0; i < n; i++) {
    matrix[i] = new Array(n).fill(0);
  }
  
  return matrix;
}

// 执行查询操作
function executeQueries(n, queries) {
  // 首先,创建一个 n x n 的矩阵
  let matrix = createMatrix(n);
  
  // 对于 queries 中的每个查询
  for(let query of queries) {
    // 解构从查询中获取的变量,type 是类型,index 是索引,val 是值
    let [type, index, val] = query;
    
    // 如果类型为 1,矩阵中的每一个元素都加 val
    if(type === 1) {
      for(let i = 0; i < n; i++) {     // 遍历每一行
        for(let j = 0; j < n; j++) {   // 遍历每一列
          matrix[i][j] += val;         // 为每一个元素加上 val
        }
      }
    }
    
    // 如果类型为 2,指定行的所有元素都加 val
    if(type === 2) {
      for(let i = 0; i < n; i++) {     // 遍历行中的每个元素
        matrix[index][i] += val;       // 为每个元素加上 val
      }
    }
    
    // 如果类型为 3,指定列的所有元素都加 val
    if(type === 3) {
      for(let i = 0; i < n; i++) {     // 遍历列中的每个元素
        matrix[i][index] += val;       // 为每个元素加上 val
      }
    }
  }
  
  // 计算所有矩阵元素的总和
  let sum = 0;
  
  // 遍历矩阵中的每一行
  for(let row of matrix) {
    
    // 遍历行中的每个元素
    for(let el of row) {
      // 将元素的值添加到总和
      sum += el;
    }
  }
  
  // 返回矩阵的总和
  return sum;
}

上述代码的主要功能是创建一个 n x n 的矩阵并初始化为 0,然后根据一个查询列表进行相应的更新和操作,最后计算并返回矩阵中所有元素的总和。希望这些注释能帮助你更好地理解这段代码。

在executeQueries函数中,type参数代表的是查询操作的类型。在提供的代码示例中,type参数有以下三种可能的取值:

  • type为1:矩阵中的每一个元素都加上val。这个操作会遍历矩阵中的每一行和每一列,为所有的元素加上val。

  • type为2:指定行(由index标识)的所有元素都加上val。这个操作会遍历指定行中的每个元素,为这些元素加上val。

  • type为3:指定列(由index标识)的所有元素都加上val。这个操作会遍历指定列中的每个元素,并为这些元素加上val。

在executeQueries函数中,当type为2时,它表示对指定行的所有元素进行操作。更具体来说,这意味着对二维数组(我们这里称之为矩阵)中,index指定的行中的所有元素进行操作。

这个操作遍历了指定行(由index标识)中的每一个元素,对每一个元素进行操作(在这个例子中,该操作是将val值加到每一个元素上)。

例如,如果我们有一个3×3的矩阵,如下所示:

0 0 0
0 0 0
0 0 0

然后我们有一个查询type=2, index=1, val=5,那么我们就会在第二行(index从0开始计数,所以index=1表示第二行)的每个元素上加5,得到:

0 0 0
5 5 5
0 0 0

总的来说,当type为2时,executeQueries函数会对二维数组中指定行(由index标识)的所有元素执行特定的操作(在这个情况下,操作是将val加到元素上)。

以上就是文章全部内容了,如果喜欢这篇文章的话,还希望三连支持一下,感谢!

  • 17
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为您提供一个使用CSS3动画和JavaScript实现的1~10大小的矩阵动画,代码如下: HTML代码: ```html <div class="matrix-container"> <div class="matrix-row"> <div class="matrix-cell">1</div> <div class="matrix-cell">2</div> <div class="matrix-cell">3</div> <div class="matrix-cell">4</div> <div class="matrix-cell">5</div> </div> <div class="matrix-row"> <div class="matrix-cell">6</div> <<div class="matrix-cell">7</div> <div class="matrix-cell">8</div> <div class="matrix-cell">9</div> <div class="matrix-cell">10</div> </div> </div> ``` CSS3代码: ```css .matrix-container { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 300px; width: 300px; border: 2px solid black; border-radius: 5px; } .matrix-row { display: flex; flex-direction: row; } .matrix-cell { display: flex; align-items: center; justify-content: center; height: 50px; width: 50px; font-size: 24px; font-weight: bold; color: white; background-color: blue; border-radius: 5px; animation-name: size-change; animation-duration: 2s; animation-iteration-count: infinite; } @keyframes size-change { 0% { transform: scale(1); } 50% { transform: scale(1.5); } 100% { transform: scale(1); } } ``` JavaScript代码: ```javascript const cells = document.querySelectorAll('.matrix-cell'); cells.forEach((cell) => { cell.addEventListener('mouseover', () => { cell.style.backgroundColor = 'red'; }); cell.addEventListener('mouseout', () => { cell.style.backgroundColor = 'blue'; }); }); ``` 这段代码会在页面中创建一个矩阵,数字从1到10排列在其中。每个数字单元格都有一个CSS3动画,会周期性地变换大小。当鼠标移动到数字单元格上时,背景色会变为红色,移开后又会变回蓝色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小纯洁w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值