feat: add swift implementation to lcof problem: No.54 (#2940)

This commit is contained in:
Lanre Adedara 2024-05-28 12:56:29 +01:00 committed by GitHub
parent 98aad3742e
commit 1c10208da8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 71 additions and 0 deletions

View File

@ -331,6 +331,44 @@ public class Solution {
}
```
#### Swift
```swift
/* public class TreeNode {
* public var val: Int
* public var left: TreeNode?
* public var right: TreeNode?
* public init(_ val: Int) {
* self.val = val
* self.left = nil
* self.right = nil
* }
* }
*/
class Solution {
private var k: Int = 0
private var ans: Int = 0
func kthLargest(_ root: TreeNode?, _ k: Int) -> Int {
self.k = k
dfs(root)
return ans
}
private func dfs(_ root: TreeNode?) {
guard let root = root, k > 0 else { return }
dfs(root.right)
k -= 1
if k == 0 {
ans = root.val
return
}
dfs(root.left)
}
}
```
<!-- tabs:end -->
<!-- solution:end -->

View File

@ -0,0 +1,33 @@
/* public class TreeNode {
* public var val: Int
* public var left: TreeNode?
* public var right: TreeNode?
* public init(_ val: Int) {
* self.val = val
* self.left = nil
* self.right = nil
* }
* }
*/
class Solution {
private var k: Int = 0
private var ans: Int = 0
func kthLargest(_ root: TreeNode?, _ k: Int) -> Int {
self.k = k
dfs(root)
return ans
}
private func dfs(_ root: TreeNode?) {
guard let root = root, k > 0 else { return }
dfs(root.right)
k -= 1
if k == 0 {
ans = root.val
return
}
dfs(root.left)
}
}