Rupak
BAN USERSwift version::::
func getConsecutiveSegment(_ array: [Int]) -> [String] {
var a = [String]()
var seq = ""
var i = 0
while i < array.count-1 {
if array[i] + 1 == array[i+1] {
var val = i+1
for j in i+1..<array.count-1 {
if array[j] + 1 != array[j+1] {break}
val += 1
}
seq = "(\(array[i])-\(array[val]))"
a.append(seq)
i = val+1
} else {
seq = "\(array[i])"
a.append(seq)
i += 1
}
}
return a
}
let sequence = getConsecutiveSegment([1,2,3,10,25,26,30,31,32,33])
Swift Version:::
func getLeafNodes(_ a: [Int]) -> [Int]? {
var arr = a
guard arr.count > 1 else {
return a
}
let firstElement = arr.first!
var i = 1
while i < arr.count && arr[i] < firstElement {
i += 1
}
arr.removeFirst()
arr.insert(firstElement, at: i-1)
let left = getLeafNodes(Array(arr[0..<i-1]))
let right = getLeafNodes(Array(arr[i..<arr.count]))
if let l = left, let r = right {
return l + r
}
if let l = left {
return l
}
if let r = right {
return r
}
return nil
}
getLeafNodes([5,3,2,4,8,7,9]) // Ans (2,4,7,9)
Swift Version::::
var arr2D = [[1,4], [6,8], [2,4], [7,9], [10,15]]
func sort(_ arr: [[Int]]) -> [[Int]] {
return arr.sorted { (a, b) -> Bool in
return a[0] < b[0]
}
}
func totalTime(_ arr: [[Int]]) -> Int {
var ending = 0, ans = 0
for i in arr {
ans += max(i[1] - max(i[0], ending), 0)
ending = max(ending, i[1])
}
return ans
}
let time = totalTime(sort(arr2D)) // time is 11
Swift Version:::::
- Rupak February 27, 2017