File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed
Easy/496.Next Greater Element I.playground Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change 33
33
*/
34
34
class Solution {
35
35
func nextGreaterElement( _ nums1: [ Int ] , _ nums2: [ Int ] ) -> [ Int ] {
36
+ var keyToIndexMap = [ Int: Int] ( )
37
+ var indexToKeyMap = [ Int: Int] ( )
38
+ for (i, e) in nums2. enumerated ( ) {
39
+ keyToIndexMap [ e] = i
40
+ indexToKeyMap [ i] = e
41
+ }
42
+
43
+ var res = [ Int] ( )
44
+ for e in nums1 {
45
+ let index = keyToIndexMap [ e] !
46
+ if index == nums2. count - 1 {
47
+ res. append ( - 1 )
48
+ } else {
49
+ var found = false
50
+ for i in ( index + 1 ) ..< nums2. count {
51
+ let nextGreaterElement = indexToKeyMap [ i] !
52
+ if nextGreaterElement > e {
53
+ res. append ( nextGreaterElement)
54
+ found = true
55
+ break
56
+ }
57
+ }
58
+ if !found {
59
+ res. append ( - 1 )
60
+ }
61
+ }
62
+ }
63
+ return res
64
+ }
65
+
66
+
67
+ func nextGreaterElement2( _ nums1: [ Int ] , _ nums2: [ Int ] ) -> [ Int ] {
36
68
var n = nums2
37
69
var stack = [ n. remove ( at: 0 ) ]
38
70
var map = [ Int: Int] ( )
You can’t perform that action at this time.
0 commit comments