zoukankan      html  css  js  c++  java
  • Day 60

    第496题:

    给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。

    nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。来源:力扣(LeetCode)

    1、nums1是nums2的子集,我们需要在nums2中寻找nums1内元素后面的第一个比自己大的值,然后存入数组是输出;

      可以利用哈希表来存储此元素和此元素后面第一个比自身大的元素,例如(1,2),将1,2 作为一个键值对put 到map中;

      然后利用栈来寻找每个元素和第一个比它大的元素,遍历数组,首个元素入栈,下一个元素如果大于前个元素,就将前个元素出栈,并且将两元素作为键值对加进map;

      如果后一元素不比前一元素大,就将该元素也入栈,最后先得出后面存在比自身大的元素,然后将不存在的元素和-1组合作为键值对加入map;

      最后遍历nums1,将键对应的值加入结果数组中。

      

    第503题:

    给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。来源:力扣(LeetCode)

    1、和上题差不多,不过现在是一个循环数组,且是求每一个元素下一个比它大的元素,主要是循环数组,说明数组最后的这个元素的后面不一定没有比它大的元素;

      解决方法可以将数组复制一份,两端相同的数组就可以将每个数后面的比它大的数找出来了;

      利用栈来比较每个数和它后面的数的大小,大就将这个大的数数存入结果数组,且自己出栈,不大就不出栈;

      依次得到结果。

      

     

  • 相关阅读:
    20200209 ZooKeeper 3. Zookeeper内部原理
    20200209 ZooKeeper 2. Zookeeper本地模式安装
    20200209 Zookeeper 1. Zookeeper入门
    20200206 尚硅谷Docker【归档】
    20200206 Docker 8. 本地镜像发布到阿里云
    20200206 Docker 7. Docker常用安装
    20200206 Docker 6. DockerFile解析
    20200206 Docker 5. Docker容器数据卷
    20200206 Docker 4. Docker 镜像
    Combining STDP and Reward-Modulated STDP in Deep Convolutional Spiking Neural Networks for Digit Recognition
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13616556.html
Copyright © 2011-2022 走看看