定义和用法

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

语法

stringObject.indexOf(searchvalue,fromindex)

说明

该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

提示和注释

注释:indexOf() 方法对大小写敏感!

注释:如果要检索的字符串值没有出现,则该方法返回 -1。

补充

补充:原笔记把此页正文写成了 indexOf 的说明,与题名"73. 矩阵置零"(LeetCode 第 73 题)不匹配。两部分都做一下整理:

indexOf 用法:string.indexOf(searchValue, fromIndex)(数组、字符串同样适用)从前往后查找子串/元素,找到返回首个匹配的索引,否则返回 -1;区分大小写;从 fromIndex(含)开始检索。

矩阵置零(LeetCode 73):给定 m × n 矩阵,若某元素为 0,则把它的整行、整列都置为 0。要求原地操作。

思路:用矩阵的第一行和第一列作为该行/列是否需要置零的标记位,再额外用两个变量记录第一行、第一列原本是否含 0。时间 O(mn)、空间 O(1)。

function setZeroes(matrix) {
  const m = matrix.length, n = matrix[0].length;
  let row0 = matrix[0].some(v => v === 0);
  let col0 = matrix.some(r => r[0] === 0);
  for (let i = 1; i < m; i++)
    for (let j = 1; j < n; j++)
      if (matrix[i][j] === 0) { matrix[i][0] = 0; matrix[0][j] = 0; }
  for (let i = 1; i < m; i++)
    if (matrix[i][0] === 0) for (let j = 1; j < n; j++) matrix[i][j] = 0;
  for (let j = 1; j < n; j++)
    if (matrix[0][j] === 0) for (let i = 1; i < m; i++) matrix[i][j] = 0;
  if (row0) for (let j = 0; j < n; j++) matrix[0][j] = 0;
  if (col0) for (let i = 0; i < m; i++) matrix[i][0] = 0;
}

来源整理自:我的有道云笔记