Kann mir bitte jemand sagen, was ich bei der Lösung dieses Algorithmus vermisse? Ein Problem, das ich habe, ist, dass meine erste if-Anweisung in der Nested-Schleife nicht bewertet, aber ich weiß nicht, warum es nicht ausgewertet werden würde. HierAlgorithmus: Next Greater Element I (aus dem Leetcode)
ist die Beschreibung des Problems:
Gegeben zwei Arrays (ohne Duplikate) nums1 und nums2 wo nums1 der Elemente Teilmenge von nums2 sind. Finde alle nächsten größeren Zahlen für die Elemente von nums1 an den entsprechenden Stellen von nums2. Die nächste größere Zahl einer Zahl x in nums1 ist die erste größere Zahl rechts von nums2. Wenn es nicht existiert, gib -1 für diese Zahl aus.
Beispiel 1:
Input: nums1 = [4,1,2] nums2 = [1,3,4,2].
Ausgang: [-1,3, -1]
Erläuterung: Für Nummer 4 in der ersten Reihe, können Sie nicht die nächste größere Anzahl für sie in der zweiten Anordnung finden, so dass eine Ausgabe -1. Für Nummer 1 im ersten Array ist die nächstgrößere Nummer im zweiten Array 3. Für Nummer 2 im ersten Array gibt es keine nächste größere Zahl im zweiten Array, also Ausgabe -1.
Und hier ist mein Code so weit:
var nums1 = [4,1,2];
var nums2 = [1,3,4,2];
var nextGreaterElement = function(findNums, nums) {
var holder = [];
for (var i = 0; i < findNums.length; i++) {
//loop through the 2nd array starting at the index of the first loop's current item.
for (var j = nums.indexOf(findNums[i]); i < nums.length - j; i++) {
if (nums[j+1] > nums[j]) {
holder.push(nums[j+1]);
break;
}
if (nums[nums.length]) {
holder.push(-1);
}
}
}
return holder;
};
nextGreaterElement(nums1, nums2)
Vielen Dank für jede Hilfe.
'i