S, S, S
O, S
S, O
1, 2 2, 3 3, 4 1, 3 2, 4 1, 4
max-path-sum(t, row, col) if row == N return ( [ (row, col) ], t[row, col] ) left-max-path = max-path-sum(t, row + 1, col) right-max-path = max-path-sum(t, row + 1, col + 1) if left-max-path[2] > right-max-path[2] return ( (row, col) ++ left-max-path[1], left-max-path[2] + t[row, col] ) else return ( (row, col) ++ right-max-path[1], right-max-path[2] + t[row, col] )
|
bool find(v, root) if root == nil return false if root.value == v return true return find(v, root[0]) || ... find(v, root[n-1])
|
bool find(x, a[]) if a.size == 0 return false else if a[0] == x return true; else return find(x, a[1..a.size()])
S, S, S
O, S
S, O
int seq-count(eggs) if eggs < 1 return 0 c = 1 + seq-count(eggs - 1) if eggs > 1 c += 1 + seq-count(eggs - 2) return c
bool find(x, a[]) if a.size == 0 return false n = a.size/2 if a[n] == x return true return find(x, a[0..n - 1]) || find(x, a[n + 1..a.size])
bool find(x, a[]) if a.size == 0 return false n = a.size/2 if a[n] == x return true if a[n] < x return find(x, a[n + 1..a.size]) else return find(x, a[0..n - 1])
intfactorial(n) if n == 1 return 1 return n*factorial(n - 1) int factorial(n) if n == 0 return 1 return n*factorial(n - 1)
int-pair stamps(n) if n == 8 return (1, 1) return (1, 0) + stamps(n - 3)
8 = one 3-cent stamp + one 5-cent stamp.
9 = three 3-cent stamps + no 5-cent stamps.
10 = no 3-cent stamps + two 5-cent stamps.
int-pair stamps(n) if n == 8 return (1, 1) if n == 9 return (3, 0) if n == 10 return (0, 2) return (1, 0) + stamps(n - 3)
|
|