【題目一】
規定1是醜數,其他的數如果只含有2或3或5的因子,那麼這個數也是醜數。
比如依次的醜數為:1,2,3,4,5,6,8,9,10,12,15...
求第n個醜數
【思路】
判定某個數是否為醜數:
對該數,如果模2==0,則除以2,直到模2不等於0,即目的是將該數的2因子全部消去,對3因子和5因子也處於同樣策略,直到最後該數如果=1,則為醜數。
演算法:根據題意,設計三個指標,分別為x2指標,x3指標,x5指標,初始都處於0位置。該指標指向某個數表示可由某個數乘以該指標得到新的醜數。
從1出發,每次選取三個指標與其分別指向的數的乘積可獲得的三個數中的最小乙個,然後將被選擇的指標後移至下個醜數。
時間複雜度為o(n)
【code】
publicstatic
int finduglynum(int
n)
return help[index-1];
}
【拓展】
這個醜數規則是題幹設定的,以後遇到說給你乙個規則讓你生成乙個序列,求第n個數。你就想想後面的數怎麼由之前的數得到的,按這個出發點去分析。
【題目四】
如果str1和str2包含的字元種類一樣,並且每種字元的個數也一樣,那麼str1和str2算作變形詞。
給定乙個字元型別的陣列,請把變形詞分組。比如
輸入:["eat", "tea", "tan", "ate", "nat", "bat"]
輸出:[
["ate", "eat","tea"],
["nat","tan"],
["bat"]
]注意:所有的字元都是小寫
【思路】
1、資料樣本是26個小寫字元,統計每個詞的每個字元出現的次數,將其形成乙個順序串,對互為變形詞的單詞,其串是相同的。
2、形成串:使用乙個26長度的char陣列記錄,其中』0』表示』a』,以此類推,對char陣列的內容連在一起形成乙個串。
提示點:
關注資料樣本狀況,是優化**的點
【code】
publicstatic list>groupanagrams(string strs)
//將全部集合彙總
list> res = new arraylist>();
for(listlist:map.values())
res.add(list);
return
res;
}
【題目五】
給定乙個整數矩陣matrix,每個位置你可以向左、右、下、上移動,找到其中最長的遞增路徑。
例如:matrix = [
[9,9,4],
[6,6,8],
[2,1,1]
]返回4
最長路徑是[1, 2, 6, 9].
【思路】
1、思考該問題是否為無後效性問題。無後效性問題:該子狀態不由前面狀態決定,只由自己的引數決定,不論是誰呼叫該子狀態,其返回值都是一致的。
2、先寫出該問題的暴力搜尋解,再一步步改為動態規劃。
【code】
publicstatic
int max(int
matix)
}return
max;
}public
static
int process(int matix,int dp,int row,int
col)
if(matix[row][col+1]>matix[row][col] && col)
if(matix[row-1][col]>matix[row][col] && row>0)
if(matix[row+1][col]>matix[row][col] && row}
return
dp[row][col];
}
第二課 安裝PHP
為什麼要安裝php?php是伺服器端解析程式,一般執行在網路伺服器上。而編寫php語言的程式我們一般是在自己的個人電腦上完成,然後拿到伺服器上除錯。所以,學習php首先要讓我們的個人電腦模擬伺服器執行環境,讓php能象在伺服器上一樣在我們的個人電腦上執行。這就是為什麼要安裝配置php的原因。安裝配置...
csdn之旅 第二課
1.html標題的標籤 1 注意 只能到,在往後就沒有作用了。2 標籤特點 可以區別其他文字,比如可以加粗 效果圖如 笑對生活!笑對生活!笑對生活!笑對生活!改變字型大小 可以自動換行 2.html段落標記 用元素 注意 標籤和標籤之間的關係 可以巢狀使用 但不可以交叉 3.html常用標記 單標記...
第二課 加法運算
在程式設計當中,文字框及按鈕是用得比較多的乙個控制項,我們先來學學如何使用這兩個控制項。1 新建乙個窗體 2 在窗體上放置三個文字框控制項,分別命名為 txtnum1 txtnum2 txtnum3,我們在命名時,盡量規範一點,可參考這裡 3 在窗體上放置乙個按鈕,命名為cmdcount 開始程式設...