Swift.n个骰子的点数

题目描述:把 n 个骰子扔在地上,所有骰子朝上一面的点数之和为 s。输入 n,打印出 s 的所有可能的值出现的概率。 i c } m l p a o s r s f } t u F n F o c o r v l l l a a v f } f } l v f } u 4 d a e e e r r a / o / o / e a o n 3 i r t t t r r r 一 r 剩 r 打 t r r d S c . . 个 下 印 a o e a m f n a a f 骰 i a 的 i f } f } f t i i p i t l P r a i e p p l 子 r 骰 / o / o l o n r n i u r r x r x p p a 的 i r 子 i 清 r 计 r a t d i i d o t o C s t e e g 情 n [ n 空 算 g a e n n e n i b = o t n n 况 f 不 j a 每 k v a w } l x t x o i u = d d = 1 l 2 存 r 个 a r h = a ( n l [ n = ( ( . a . 在 i r 存 i r r i : = r " + i [ t [ f n 0 . g . 的 n [ 在 n [ l 1 D r 点 = { t I [ I i e . ] . 点 1 的 m 1 e a m o 0 [ 数 y n = I n r x 6 [ d 数 0 - 点 i - r - u f \ 1 ( t n t s t i i , . f 数 . = f m r + b l ( d ] 6 t ] t ) { ] c 2 . l . l [ = f l a i i ] ] ( ) e 个 < a . 1 a < 1 l e g n c ( ( r = C 骰 i g 6 g = - 1 a ] d e ) r e o 子 ] * ] f g = e C d e p 1 u 不 { [ i [ 6 l { x o i p e n 存 j k a p ) u c e a t 在 ] { ] & g o 出 n e a t 1 & ] w 现 t C t i { = = [ ( 的 : o i n m k 6 概 I u n g 0 0 ] . 率 n n g : < 0 : t t : = + , \ ) 0 = ( + 0 , k D D { , a o o 1 c { r u u c o r b b o u [ l l u n f e e n t l ( ( t : a d i : g i ) m ] c / m a [ e t a x k C o x C - o t C o m u a o u ] n l u n t ) n t ) " t ) ) ) ) 算法思想:动态规划求解,每次都算出可能存在的所有点数。 ...

2015-06-24 · 3 min · 585 words · cubegao

Swift.树中两个节点的最低公共祖先

题目描述:求树中两个结点的最低公共祖先,此树不是二叉树,并且没有指向父节点的指针。 i p } c } m u l p b a o l s r i p p p } s f } f } f } t c u u u u u u b b b F n n n F c l l l o c c c o l i i i s s r v v g g r i } l l i } i } v v w } r u a c c c e e 5 c a a e e e g f i e f f g a a h e n s l l 0 o r r t t t e s t e r r i t d s v v i f f S m N N u t r t a l t l u a a a n . . o m l l o o r N o r . a r f } i l L t i e i } i r t M r r i v c l o i i d d n o o e a r r o s i a e n f n n i y t a h u n s s e e d t t p r r t s s m d i d o T v c ( l i t T t t P P g e ! u p ! . t t p e n p e t n r a h _ l i r 1 2 a a e P . r e = = n i } g l . C : x d 1 t b x e e l i = d o e t t t a v n n o f e a r o e [ e r m e : l v r n e = = h h L t a d r n d t s e m M = x i m e + p N d a v e N ( ( a h l ( o i e n N t m m y n p a = o I r l a n { o [ [ r r s ( r o l o l b o ? o o T 1 < d k d n e : l d M M o o t _ = o t i d i r d . v n r e = 1 e t n = e y y o o C = o ! { n e s e e v e N e p x : I ( T T t t o r t . . t a P a L o e 1 ] p { n n _ r r , , m o p ! c a v . k a l a d N . . 1 [ t i e e m o . ) h r a a t s e o c v [ M ) l r e e a b o t v i r l p h ! t ( d o a i y o N N , , n : a l ! p ( = ( _ e u l n T { o o o N l d = e n ) ? n d r t d d & & o M r { = n o p p t = e e : e e l l d y { e d d . 1 = = x e ] ] i i e T n p ( e v : { ] N M ( ( s s ( r . n , a n p o y ) ) t t l e v o l [ i 2 d T 1 2 i e a d p M l [ e r ) ) s N l e , { y i ] e t o ) T n ? e 1 d { & r d N , e l e e o ? i e x d l , s N ] e i _ t o . , s ) d v _ t p e a 2 : ] l a ) , : M _ { y M T p y r 2 T e : r e e N [ e o M N d y o e T d , r e _ e , e _ l N i o b s d : t e : ] M ) y i T n r o e u e t M N y o [ T d M r e y e ) T e r N e o e d N e M o ? y d T e { r ] e ) e N { o d e ? { 算法思想:假设是二叉树做的。还要优化。 ...

2015-06-08 · 4 min · 837 words · cubegao

Swift.扑克牌的顺子

题目描述:从扑克牌中随机抽5张牌,判断是不是一个顺子, 即这5张牌是不是连续的。2~10为数字本身, A为1。 J为11、Q为12、 为13。小王可以看成任意数字。 i c } m l p a o s r s f } t u F n F o c o r v v v f } r u 4 p a a a o e n 4 u r r r r t d S k u a o e z n l i i } i } i } i } r t l ( e a f f f f n i u _ r = s i o t o t n i l l i z n i n 0 z a r a n l e o u = = n = e s e s ! a r n m u = r t t t + = s o s 0 / - m o u = t { : 间 1 s 0 = r ! 0 > 隔 . + = n = = = [ s { = i { I o i f - i n n r 1 a 1 - t t & l ] e & s { l ) d e a ( l s ) a t s { t - B o ! 1 o = l 0 { { 算法思想: 首先把数组排序,再统计数组中0 的个数,最后统计排序之后的数组中相邻数字之间的空缺总数。如果空缺的总数小于或者等于0 的个数,那么这个数组就是连续的:反之则不连续。 ...

2015-06-08 · 2 min · 218 words · cubegao

Swift.把字符串转换成整数

题目描述:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 i c } m l p a o s r s f } t u F n F o c o r g } l v l v i } } } i } v f } r u 4 m u e a e a f e e f a o e n 9 y a t r t r l l r r t d S A r a s s b u a o t d r a b c s r b s e b e r e r s i i } i } i } s r t l o e r e o i r e i e e g e u f f f u n i u i s t r g u g [ g g i g i t i t m i m o t ( t u i n n 0 i n f i f u n u n a s s s n i _ r r = n t ] n n r r = r r i r i r = u o . n = = a a n > n b r e g e g e m n s c A = = = + r + r 0 e [ t n t n t s t o 0 r 1 = = - r = r 0 c 0 g i u u u u { r u r 0 s 1 [ [ o i ] r = r = r m : n a t " 1 0 1 0 u n n = n = n t y r - ] ] n . < S ( . " t . 0 1 0 - 0 t > s c = < . " 1 1 r t o { = { c 0 & 0 i 0 r u " o " & & n ) n " 0 u & + g e t + " n ( ) l " t I ( I s - n I n e { { a t n t 1 r . t ( { a r m . S I r [ a m t n r i x i r t [ ] n i 0 - n { ] > - g I ( > " n I a 9 t n r " " ( t r 9 S ( [ " { t S i r t ] { i r ) n i ) g n ! ( g * a ( s r a i r r g [ r n i [ ] i ) ] ) ) ! ) * ! s * i s g i n g ) n / ) 1 / 0 1 0 < > s u s m u m { { github地址:https://github.com/cubegao/LeetCode ...

2015-06-04 · 3 min · 494 words · cubegao

Swift.二叉树的中序遍历

i e } m x p t o e r n f } f } t s / u / u i 递 n 非 n F o 归 c 递 c o n i } i n i 归 v v v w } r u i f n . n i a a a h e n M n O a O n r r r i t d y O r r p r O l u a T r o r d p d r n s r e i } } r t r d o e e e e d o t e f e n i e e t t r n r e d a s ! l o e r u T d T r e c s n s r n N T = r r ( r T k = t o s n e n r n e o r = n a r a r = a d t o o e o s d a v o v a = [ c e a d { d s d e v n e o e v r I k c e e . e S e i r t r e o [ n . ! k a o r l s ! s r o T t i = . = = p = l s a . a s t r ] s a p u a { l v l a e ( E n p n s e n t l ( a ( l e ) m i p o t n o i ( r l r 2 N p l e d a d d o _ o ) o ( o t n e c ( e n o o _ d y { d ? k n ? r t t e ( . . o . { o ? ? r ? n l r d r o . . o ] o e e e i t l r o ( d f m ! g : e i t ) n e t o . h f g : o ) v v t T t h d e a r , t T e L l e , r a ) e & e ! s N n & e = t o ) n N ( d ) o n ) e d i ? e l , ? _ ) { n : i [ n I o n u t t ] [ { I n t ] ) { 算法思想:中序遍历:左子树—> 根结点 —> 右子树 ...

2015-05-24 · 3 min · 455 words · cubegao

Swift.二叉树的前序遍历

i c } m l p a o s r s f } f } t / u / u M 递 n 非 n F y 归 c 递 c o T i } n p p 归 v v v w } r u r p f . r r p a a a h e n e r a e e r r r r i t d e e r p o o e l u a N o o r p r r o n s r e i } } r t o r o e e d d r o t e f e n i d d t t n e e d d a s ! l o e e u d r r e e c s n s r n S r = r ( T T r k = t o r s n e n e o T = n r r r T = a d e t o o s l r o a a r = [ c e s a d { d u a n o v v a r I k . c e e t v i t e e v o [ n . ! a k i e l ! r r e o T t i = p . = = o r . s s r t r ] s p a n s { v a a s e ( E n e p n s a a l l a e ) m i n p o t { l l ( ( l N p l d e d a ( ) r r 2 o t ( n e c _ o o ( d y { n d ? k o o _ e o ( . . r t t ? d n l r o ? ? r ] e o e e o . . o ( ! d f m t l r o ) n . e t o : e i t o v ) v f g : d a e T t h e l L r , t T ) a e , r ! s e & e = t N n & e ( o ) n N n ) d ) o i ? e d l . ? e r , ? { i _ ) g h n t : i [ n I o n u t t ] [ { I n t ] ) { 算法思想:前序遍历:根结点 —> 左子树 —> 右子树 ...

2015-05-24 · 3 min · 447 words · cubegao

Swift.选择排序

i c } m l p a o s r s f } t u S n F e c o l v f } r u e s a o e n c o r r t d t r u a S t s i l v v f } i } r t o ( e a a o f n i r _ = i t r r r o t n i s n S n n j m i r i } n l s s o : 0 i n f d e [ [ l . = n d i e t i i u [ . e n m x ] n t I < i = x i m i M t d i n s M j n i n i e = e o t . + s i . n d n m x n ] c [ n . > e p s M ) o 1 i < = x ! [ i { u ] = s s M = = i n n . [ s i n ] t i c r [ n i s d o ] r [ e = [ { u ] = { i x I n { ] M t n t r i e t n m ] { ] p { 算法思想:每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。 ...

2015-05-23 · 2 min · 240 words · cubegao

Swift.快速排序

i c } m l p a o s r s f } f } f } t u u u Q n n n F u c c c o i v q r i } l v v w } n r u c s a u e q f p e a a h [ e n k o r i t u a t r r i l t d S r c u i l r l e u a o t s k r c e l q q t t l r e w } n w } n f r t r ( S n k f e u u i e e i h [ h [ t n i t _ = o S t t i i t m f g l i l i r ] o S r s o c c i p t h e l e l i l n o n n t r < m k k o t f e r f e l g = e l : ( t i S S n = = t i t e h f u & ( r d o o ( = l g ] l f t t t t [ s _ i r r _ n l < e h e t ] e i I , g = t t [ e r f t = f m o n n h ( ( n l f i r t t + = p n t 0 : t p & & : e t g i - n = ] , a n n f 1 h g < = [ < n { ) i { r , , i t t h r 1 [ n n t n 1 1 t r 1 i r l . o i l m o ] i g i e c u t e i u { g h g f o t i f d t h t h t [ u o t t ] t ] I n [ n , + [ n t I ( I & & t n & m 1 n & & ] - t n i , t ] , d ] n n { 1 , r , [ [ ) _ l - i _ r l e g i e l f 1 h l g f e t ) t e h t f , ) f t ] t t ] : r 1 < i : > = I g = n h I t t t n t e , ) t e m _ , m p _ p { r i r g i h g { t h : t 1 I : n t I ) n t { ) I n t { 算法思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 ...

2015-05-22 · 3 min · 501 words · cubegao

Swift.归并排序

i c } m l p a o s r s f } f } f } t u u / u M n n 合 n F e c c 并 c o r v s r i } l v l v v w } w } w } v l w } u g s a o e s f e m a e a a h h h a e h n e o r r t o f e r t r r i i i r f i d S r t u r l t r l l l t l a o t s A r t e l s s m - g t m l r e i } } e t l e t r t e n l t t r ( r n A f e o o e > e e i e i f e e e e i = [ e i t _ = r r t t r r r m ( m d f g l l l m f r m g = l l f + o S a s r t t g i _ p t h e n s e p t i p h l e e t = n o n n y a < m A A e d = t f [ t l e t r f . g . t 0 e f f l : ( y i r r ( 和 n = = t l e e e i t a + h a f t t + 1 u & ( r d r r & m : ( = e m f { m g p = t p + t ] = t [ s _ i a a n i [ l l < f p t p h < p p = I < i I , g = y y , d i I e e m = t . . t = e 1 < e n = = 1 o n n h ( ( + n n f f i ] a + a n = n 1 n t 0 : t ( & & l 1 o t t t d m p = p + m d d r t ] , l n n e - u ] I I i < p p = i ( r ( i e { ) i { e , , f > t ( n n + d e 1 e d n i n g m n n f t r ) n n n 1 [ g [ h p . o t l m , i [ + 1 & [ d d { l h r t [ c u e i g I & r ( ( e t i I t o t + f d r h n r i n n f I g n ] [ u t + i t t i r g [ [ t n h I n [ r , 1 g ] g i h l r ] t { n t I i , h , h g t e i ) { ] t n g m t _ t h ] f g ) ] - t h i r ) I t t h ] t d i l n { ] t { 1 , ) ) g e ) < ) ] ) _ / h f / = ) 2 t t 2 l ) I r e n i f : g t h : I t n I I t n n , t _ { , _ r i r g i h g t h I t n : : I I n n t t ) ) { { 算法思想:利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 ...

2015-05-21 · 4 min · 672 words · cubegao

Swift.直接插入排序

i c } m l p a o s r s f } t u I n F n c o s v f } r u e s a o e n r o r r t d t r u a S t n i v w } r t o ( u a h n i r _ m i r i o t s n l n n S n j e l n n j u o : = 0 e u u m l . = j t m m - s u [ n . - s s = t I < i 1 t [ [ i n n > e j j 1 o t u = m ] - n ] m 0 p 1 ) s = ] { . & = c & n = o n u u n u m t [ n u m s e I t m s [ m n s [ j p t { [ j - ] j ] 1 ] ] { < n u m s [ j - 1 ] { 算法思想:每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。 ...

2015-05-19 · 1 min · 197 words · cubegao