python编程300例之 006下一个更大的数

 1 # 问题描述: 两个不重复的数组nums1 和nums2,其中nums1是nums2的子集.在nums2的相应位置找到nums1所有元素的下一个更大数字
 2 # nums1中的数字x的下一个更大的是nums2中x右边第1个更大的数字.如果它不存在返回-1,
 3 # nums1和nums2中的所有数字都是唯一的,nums1和nums2的长度不超过1000
 4 # 问题示例:nums1 = [4,1,2] nums2 = [1,3,4,2]  输出[-1,3,-1]
 5 class Solution:
 6     def nextBignums(self, nums1, nums2):
 7         num = []
 8         for i in nums1:
 9             for j in range(len(nums2)):
10                 if i == nums2[j]:
11                     for k in nums2[j:]:
12                         if k > i:
13                             num.append(k)
14                             break
15                     else:
16                         num.append(-1)
17 
18         return num
19 
20 
21 c1 = Solution()
22 print(c1.nextBignums([0, 5, 4, 2, 1], [1, 5, 7, 0, 3, 4, 2]))

 

上一篇:Android 推断SD卡是否存在及容量查询


下一篇:误区:关于List.remove在for循环中出现问题的解决方案