云归处

文章 评论 浏览 28

云归处 2022-05-04 13:55:49
const cityData = [{
    id: '1',
    name: '广东省',
    children: [
      {
        id: '11',
        name: '深圳市',
        children: [
          {
            id: '111',
            name: '南山区'
          },
          {
            id: '112',
            name: '福田区',
            children: [{
              id: '1121',
              name: 'A街道'
            }]
          }
        ]
      },
      {
        id: '12',
        name: '东莞市',
        children: [
          {
            id: '121',
            name: 'A区'
          },
          {
            id: '122',
            name: 'B区',
          }
        ]
      }
    ]
  }];

  const tarId = '1121'
  const findId = (data, tarId, parentId = []) =>
    data.reduce((acc, item) =>
      acc.concat(item.id == tarId
        ? [...parentId, item.id]
        : item.children
          ? findId(item.children, tarId, [...parentId, item.id])
          : [])
      , [])

  let res = findId(cityData, tarId) // 输出 [1, 11, 112, 1121]
  console.log(res)

第 92 题:已知数据格式,实现一个函数 fn 找出链条中所有的父级 id

云归处 2022-05-04 12:20:42

@libin1991 上面的时间复杂度是 O(N^2),

function getIndex(arr) {
      let index = -1;
      arr.reduce((pre, cur, k) => {
            if (cur <= 0 || pre <= 0) {
                  index = cur <= 0 && pre <= 0 ? -1 : cur > pre ? k : index;
            } else {
                  index = cur > pre ? index : k;
            }
            return cur > pre ? pre : cur;
      }, -1);
      return index;
}

时间复杂度是 O(N)

第 161 题:用最精炼的代码实现数组非零非负最小值 index

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文