本文主要是介绍LintCode 1206. 下一个更大的数 I JavaScript算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述
你有两个数组 nums1和nums2(互不重复),其中nums1是nums2的子集。 在nums2的相应位置找到nums1所有元素的下一个更大数字。
nums1中的数字x的下一个更大数字是nums2中x右边第一个更大的数字。 如果它不存在,则为此数字输出-1。
说明
1.nums1和nums2中的所有数字都是唯一的。
2.nums1和nums2的长度不超过1000。
样例
- 例子 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。
解析
const nextGreaterElement = function (nums1, nums2) {len1 = nums1.lengthlen2 = nums2.lengtharr=[]for(let i = 0; i < len1; i++) {var v = nums1[i];var n = nums2.indexOf(v);var ls = len2 - n + 1;for (let j = n; j < ls + n; j++) {arr[i] = v;if(v<nums2[j]){arr[i] = nums2[j];break;}}if(arr[i] == v){arr[i] = -1;}}return arr;
}
运行结果
这篇关于LintCode 1206. 下一个更大的数 I JavaScript算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!