zoukankan      html  css  js  c++  java
  • 1206. 下一个更大的数 I

    1206. 下一个更大的数 I

    中文English

    你有两个数组 nums1nums2(互不重复),其中nums1nums2的子集。 在nums2的相应位置找到nums1所有元素的下一个更大数字。

    nums1中的数字x的下一个更大数字是nums2中x右边第一个更大的数字。 如果它不存在,则为此数字输出-1。

    样例

    例子 1:

    输入: nums1 = [4,1,2], nums2 = [1,3,4,2].
    输出: [-1,3,-1]
    解释:
         对于第一个数组中的数字4,在第二个数组中找不到下一个更大的数字,因此输出-1。
         对于第一个数组中的数字1,第二个数组中的下一个更大数字是3。
         对于第一个数组中的数字2,第二个数组中没有下一个更大的数字,因此输出-1。
    

    例子 2:

    输入: nums1 = [2,4], nums2 = [1,2,3,4].
    输出: [3,-1]
    解释:
         对于第一个数组中的数字2,第二个数组中的下一个更大数字是3。
         对于第一个数组中的数字4,第二个数组中没有下一个更大的数字,因此输出-1。
    

    注意事项

    1.nums1nums2中的所有数字都是唯一的。
    2.nums1nums2的长度不超过1000。

    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        """
        @param nums1: an array
        @param nums2: an array
        @return:  find all the next greater numbers for nums1's elements in the corresponding places of nums2
        """
        '''
        大致思路:
        1.循环nums1,首先在nums2中找到num1中出现的数字,然后循环接下来的数组,找到更大的数,如果存在,则返回。否则返回-1.
        '''
        def nextGreaterElement(self,nums1,nums2):
            res = []
            for i in nums1:
                index_i = nums2.index(i)
                s = nums2[index_i:]
                for j in range(len(s)):
                    if s[j] > i:
                        res.append(s[j])
                        break
                else:
                    res.append(-1)
            return res
  • 相关阅读:
    数据库创建用户SQL
    团队总结和展示
    第十三周总结
    梦断代码02
    第十二周进度博客
    团队冲刺第十五天
    团队冲刺第十四天
    团队冲刺第一阶段评价
    梦断代码01
    第十一周进度博客
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12727886.html
Copyright © 2011-2022 走看看