Skip to content

Instantly share code, notes, and snippets.

@networkextension
Created October 18, 2016 06:55
Show Gist options
  • Select an option

  • Save networkextension/286e420404a6deeca9fc4a3207390a92 to your computer and use it in GitHub Desktop.

Select an option

Save networkextension/286e420404a6deeca9fc4a3207390a92 to your computer and use it in GitHub Desktop.
Pascal's Triangle
func angelx(n:Int) ->[[Int]] {
var a = [[Int]]()
for i in 0 ..< n {
//a[i][0] = 1
var b :[Int] = []
b.append(1)
var bP:[Int]?
if i != 0 {
bP = a[i-1]
}
if let pre = bP {
let count = pre.count //+ 1
for j in 1 ..< count {
let v = pre[j-1] + pre[j]
b.append(v)
}
b.append(1)
}
a.append(b)
}
return a
}
let cc = angelx(n: 5)
@networkextension

Copy link
Copy Markdown
Author

func angelx3(n:Int) ->[Int] {
var a = Int
a.append(contentsOf: 0 ..< n )
a = a.map({ _ in 1 })
for i in 0 ..< n {

    var j = i - 1
    while j>=1 {
        a[j] = a[j] + a[j-1]

        j -=  1
    }
    print(a)

}

return a

}
let cc = angelx(n: 5)
let ccc = cc[4]
let ccd = angelx3(n:5)

@networkextension

Copy link
Copy Markdown
Author

func mergeSort(A:inout [Int],m:Int,B:[Int],n:Int){
var max = m + n - 1
var j = m - 1
var k = n - 1
while max >= 0 {
print("(max),(j) (k)")
if (j >= 0 ) && (k >= 0) {
if A[j] > B[k] {
A[max] = A[j]
j -= 1
}else {
A[max] = B[k]
k -= 1
}
}else if j >= 0 {
A[max] = A[j]
j -= 1
}else if k >= 0 {
A[max] = B[k]
k -= 1
}
max -= 1
print(A)
}
}
let aa = [1,3,4,8,9,23]
var bb = [2,5,7,11,19]
let mm = bb.count
bb.append(contentsOf: 0..<aa.count)
mergeSort(A: &bb, m: mm, B: aa, n: aa.count)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment