question 1:
給定一個(gè)只有0,1的數(shù)列,和一個(gè)整數(shù)n,要求:
(1)判斷是否能在這個(gè)數(shù)列中將0的地方替換成1(n次) ? ? ? ? ? (2)替換后要保證不能有連續(xù)的兩個(gè)1出現(xiàn)

我的方法:
剛開始想直接找規(guī)律,但是發(fā)現(xiàn)給定列表的排列情況太復(fù)雜,很難全部考慮到
別的方法:
對(duì)于一個(gè)位置x,只要同時(shí)滿足這三種情況 :
(1)x==0? (2)x-1 ==0?? (3)x+1==0
就可以把位置x的0替換成1

question 2:
給定一個(gè)列表,只需要對(duì)列表的子列表排序,就可以使得整個(gè)列表按升序排列。求出這個(gè)子列表的最大長度

我的方法:
很簡單的想法,將原列表與排序后的列表比較,找出不同的部分,就是子列表

question 3:
給定n組按升序排列的列表,求出兩組列表間的最大距離(定義:兩組間的最大數(shù)減最小數(shù))

我的方法:
找到列表中的最大值和最小值(還要符合這兩個(gè)值不在同一個(gè)列表中),兩則的差就是結(jié)果。但是。但是這樣的想法是沒有依據(jù)的:
假設(shè)輸入[ [0,2,5],[3,4]]
按照算法 ,不在同一列表的最大最小值為 5,3,那么距離為2
但實(shí)際上最大距離應(yīng)該是4-0=4
別人的方法:
最大距離只可能出現(xiàn)在:兩個(gè)列表間的最大值(a[-1])-最小值(b[0])或者是最小值(a[0])減去最大值(b[-1]),那么問題就轉(zhuǎn)變成:
將遇到過的最大值,最小值與當(dāng)前列表的最大值最小值比較,看是不是當(dāng)前遇到的最大的距離,然后再更新歷史最大值和最小值
這樣做能夠保證所有的最大值(a[-1])-最小值(b[0])或者是最小值(a[0])減去最大值(b[-1])
都被遍歷一次