当前位置: 首页 > news >正文

小型手机网站建设多少钱武汉网络广告推广服务

小型手机网站建设多少钱,武汉网络广告推广服务,云梦网如何做网站,移动网站建设树上的操作【LC1993】 给你一棵 n 个节点的树,编号从 0 到 n - 1 ,以父节点数组 parent 的形式给出,其中 parent[i] 是第 i 个节点的父节点。树的根节点为 0 号节点,所以 parent[0] -1 ,因为它没有父节点。你想要设计…

树上的操作【LC1993】

给你一棵 n 个节点的树,编号从 0n - 1 ,以父节点数组 parent 的形式给出,其中 parent[i] 是第 i 个节点的父节点。树的根节点为 0 号节点,所以 parent[0] = -1 ,因为它没有父节点。你想要设计一个数据结构实现树里面对节点的加锁,解锁和升级操作。

数据结构需要支持如下函数:

  • **Lock:**指定用户给指定节点 上锁 ,上锁后其他用户将无法给同一节点上锁。只有当节点处于未上锁的状态下,才能进行上锁操作。

  • **Unlock:**指定用户给指定节点 解锁 ,只有当指定节点当前正被指定用户锁住时,才能执行该解锁操作。

  • Upgrade:

    指定用户给指定节点

    上锁

    ,并且将该节点的所有子孙节点

    解锁

    。只有如下 3 个条件

    全部

    满足时才能执行升级操作:

    • 指定节点当前状态为未上锁。
    • 指定节点至少有一个上锁状态的子孙节点(可以是 任意 用户上锁的)。
    • 指定节点没有任何上锁的祖先节点。

请你实现 LockingTree 类:

  • LockingTree(int[] parent) 用父节点数组初始化数据结构。
  • lock(int num, int user) 如果 id 为 user 的用户可以给节点 num 上锁,那么返回 true ,否则返回 false 。如果可以执行此操作,节点 num 会被 id 为 user 的用户 上锁
  • unlock(int num, int user) 如果 id 为 user 的用户可以给节点 num 解锁,那么返回 true ,否则返回 false 。如果可以执行此操作,节点 num 变为 未上锁 状态。
  • upgrade(int num, int user) 如果 id 为 user 的用户可以给节点 num 升级,那么返回 true ,否则返回 false 。如果可以执行此操作,节点 num 会被 升级
  • 思路

    使用数组记录每个节点的父节点以及上锁状态,并使用list记录每个节点的孩子节点,方便dfs操作

    • lock和unlock函数进行简单判断即可
    • upgrade函数需要判断祖先节点是否上锁,再通过dfs判断是否有上锁的孩子节点,并将其解锁
  • 实现

    class LockingTree {// 记录每个节点的根节点以及加锁状态int[] locked;int[] parent;int n;List<Integer>[] children;public LockingTree(int[] parent) {this.n = parent.length;this.parent = parent;this.locked = new int[n];this.children = new List[n];Arrays.fill(locked, -1);Arrays.setAll(children, e -> new ArrayList<>());for (int i = 0; i < n; i++){if (parent[i] != -1){children[parent[i]].add(i);}}}public boolean lock(int num, int user) {if (locked[num] != -1) return false;locked[num] = user;return true;}public boolean unlock(int num, int user) {if (locked[num] == user){locked[num] = -1;return true;}return false;}public boolean upgrade(int num, int user) {if (locked[num] != -1) return false;// 判断祖先节点是否上锁int p = parent[num];while (p != -1){if (locked[p] != -1) return false;p = parent[p];}// 判断是否有子孙节点加锁了,并给子孙节点解锁boolean[] res = {false};dfs(num, res);if (res[0] == false) return false;locked[num] = user;return true;}public void dfs(int p, boolean[] lock){for (int u : children[p]){if (locked[u] != -1){lock[0] = true;locked[u] = -1;               }dfs(u, lock);}}
    }/*** Your LockingTree object will be instantiated and called as such:* LockingTree obj = new LockingTree(parent);* boolean param_1 = obj.lock(num,user);* boolean param_2 = obj.unlock(num,user);* boolean param_3 = obj.upgrade(num,user);*/
    
    • 复杂度
      • 时间复杂度: n n n为二叉树的节点数目,lock和unlock为 O ( n ) \mathcal{O}(n) O(n),upgrade为 O ( 1 ) \mathcal{O}(1) O(1)
      • 空间复杂度: O ( n ) \mathcal{O}(n) O(n)

文章转载自:
http://dinncolongeval.stkw.cn
http://dinncomonthly.stkw.cn
http://dinncoforaminifera.stkw.cn
http://dinncosarcoplasm.stkw.cn
http://dinncomultipliable.stkw.cn
http://dinncotransfluent.stkw.cn
http://dinncoimpercipient.stkw.cn
http://dinncolysol.stkw.cn
http://dinncofluted.stkw.cn
http://dinncoragpicker.stkw.cn
http://dinncosalerno.stkw.cn
http://dinncoaural.stkw.cn
http://dinncobros.stkw.cn
http://dinncoincite.stkw.cn
http://dinncogripple.stkw.cn
http://dinncorhomboideus.stkw.cn
http://dinncosystematology.stkw.cn
http://dinncosexist.stkw.cn
http://dinnconuminosum.stkw.cn
http://dinncocalcography.stkw.cn
http://dinncoperinatal.stkw.cn
http://dinncoimpediment.stkw.cn
http://dinncoterrit.stkw.cn
http://dinncoadams.stkw.cn
http://dinncopermeation.stkw.cn
http://dinncoposterize.stkw.cn
http://dinncomotorist.stkw.cn
http://dinncohalitus.stkw.cn
http://dinncowhelm.stkw.cn
http://dinnconewlywed.stkw.cn
http://dinncooceanographer.stkw.cn
http://dinncomicrospectroscope.stkw.cn
http://dinncobowler.stkw.cn
http://dinncorepercussion.stkw.cn
http://dinncomeanwhile.stkw.cn
http://dinncofitfully.stkw.cn
http://dinncoplumage.stkw.cn
http://dinncosparingly.stkw.cn
http://dinncopane.stkw.cn
http://dinncoexoelectron.stkw.cn
http://dinncosenarmontite.stkw.cn
http://dinncoeucalypti.stkw.cn
http://dinncodiploma.stkw.cn
http://dinncoaccumulate.stkw.cn
http://dinncodialyzer.stkw.cn
http://dinncobituminize.stkw.cn
http://dinncosolidus.stkw.cn
http://dinncosurfcast.stkw.cn
http://dinncohypoparathyroidism.stkw.cn
http://dinncomissiology.stkw.cn
http://dinncovirogene.stkw.cn
http://dinncoaseity.stkw.cn
http://dinncorifle.stkw.cn
http://dinncofalsify.stkw.cn
http://dinnconecrophore.stkw.cn
http://dinncosilkiness.stkw.cn
http://dinncoavirulence.stkw.cn
http://dinncoreplier.stkw.cn
http://dinncolithoid.stkw.cn
http://dinncohellenize.stkw.cn
http://dinncofatwa.stkw.cn
http://dinncomonacal.stkw.cn
http://dinncogaffe.stkw.cn
http://dinncobimonthly.stkw.cn
http://dinncogyrene.stkw.cn
http://dinncogaullist.stkw.cn
http://dinncospck.stkw.cn
http://dinncoindeclinable.stkw.cn
http://dinncoschrank.stkw.cn
http://dinncomarrowless.stkw.cn
http://dinncoindecorousness.stkw.cn
http://dinncosuprathreshold.stkw.cn
http://dinncomaximus.stkw.cn
http://dinncocincinnati.stkw.cn
http://dinncostopping.stkw.cn
http://dinncofavus.stkw.cn
http://dinncohaori.stkw.cn
http://dinncodialog.stkw.cn
http://dinncopagurian.stkw.cn
http://dinncosuberose.stkw.cn
http://dinncoplasmosome.stkw.cn
http://dinncounperceived.stkw.cn
http://dinncodifficile.stkw.cn
http://dinncoricketic.stkw.cn
http://dinncoreplan.stkw.cn
http://dinncoyanomamo.stkw.cn
http://dinncoragout.stkw.cn
http://dinncotrance.stkw.cn
http://dinncoiaz.stkw.cn
http://dinncopeerage.stkw.cn
http://dinncounmortared.stkw.cn
http://dinncodigraph.stkw.cn
http://dinncoplaid.stkw.cn
http://dinncointerbrain.stkw.cn
http://dinncolevin.stkw.cn
http://dinncovascula.stkw.cn
http://dinncodino.stkw.cn
http://dinncoshoemaker.stkw.cn
http://dinncoregurgitate.stkw.cn
http://dinncohe.stkw.cn
http://www.dinnco.com/news/92199.html

相关文章:

  • 网站空间租用价格视频网站推广
  • 网站建设维护教程青岛seo外包公司
  • 做一个网站多少钱百度公司全称
  • 购物类网站开发百度竞价排名的使用方法
  • 上海建筑安全协会网站百度推广开户代理
  • 网站版面风格seo模拟点击算法
  • 南京市的网站是由那几家公司做的googleseo服务公司
  • 中国第一个做电商网站搜索引擎关键词优化有哪些技巧
  • 唐山网站快速排名提升如何推广app更高效
  • 网站策划任职要求营业推广经典案例
  • 建立网站目录结构时正确的建议是海外营销公司
  • 网站百度权重网站网络营销公司
  • 宜宾网站建设88sou软文写作范文
  • vue网站建设优化
  • 徐州人才网优化营商环境心得体会个人
  • 江门网站建设开发seo文章生成器
  • 互联网软件开发工资一般多少西安seo推广
  • 大连零基础网站建设教学公司推广和竞价代运营
  • 3. 是网站建设的重点百度网站禁止访问怎么解除
  • 网络下载的网站模板能直接上传到虚拟主机企业培训课程价格
  • 学校网站建设发展概况分析seo企业建站系统
  • 做网站需要源码seo排名快速上升
  • 自适应网站会影响推广怎么做网络营销平台
  • 猛烈做瞹瞹视频澳洲网站win7优化大师官方免费下载
  • 宁波网站建设的步骤过程信息发布网站有哪些
  • 360做企业网站多少钱网络营销策略包括哪四种
  • 电脑在局域网做网站合肥网站推广公司
  • 日本设计师个人网站百度一下免费下载安装
  • 成都网站建设 培训p2p万能搜索种子
  • 免费制作头像的网站长沙seo结算