實習準備(1)

**

3.26

**
一、關於java隨機數
算法機試的時候可以使用Random嗎
import java.util.Random;
rnd.nextInt(22)+5 設置隨機數的範圍在5到26之間
rnd.nextInt(max-min)+min 設置隨機數的範圍在min到max之間
Math.random()*(n-m)+m

二、關於去除數組中重複的數
利用Hashset去除重複的數

三、各類排序算法
分治法、快排法

四、分治法複習(分治法與遞歸思想)分治法天然與遞歸結合在一起
小和問題、分治法排序、逆序對問題

遞歸:邊界條件+遞歸方程
(階乘、裴波那契數列)
遍歷的時候傳參數(一個數的時候、一個數組的時候(傳入數組名,數組的起始和終點))

五、回溯法

六、關於java設置全局變量
可以使用static設置

七、動態規劃問題

八、複習一下java的字符串操作函數
split函數//split 函數是用於按指定字符(串)或正則去分割某個字符串,結果以字符串數組形式返回;
數組的length屬性與字符串求長度length()方法有本質區別

將一個字符串中只有一個字符,可以通過charAt獲取指定的字符,有char就返回char

toUpper()函數
‘A’ = ‘a’ - 32?

    char ch = 'a';
    char ch1 = (char) (ch - 32);

**

3.27

**
Java字符串之練習

charAt() 參數、返回值類型,判斷迴文數
indexOf() 指定從哪個字符開始以後
length()
startsWith()
endsWith()
substring()
toUpperCase()
toLowerCase()
trim()
String.valueOf(int/float/char) //將其他類型轉換爲字符串類型
split(String regex)
concat()

字符串類型與其他類型互轉
parseInt parseDouble

字符串與字符轉換
字符轉爲字符串 String.valueOf
字符串轉爲字符 toCharArray(先轉爲字符數組,在取得第一個元素) charAt(直接獲取第一個字符)

正則表達式
replace函數 用(oldchar,newchar)
replaceAll(regex, replacement)
去除字符串中的字母或者數字
\w,與[a-zA-Z0-9_]等價
[0-9]
[a-zA-Z]

新建一個字符串數組,不賦初值,那麼每個字符串都爲null
新建一個字符串,不賦初值,那麼每個字符串爲空字符串
新建一個整形數組,不賦初值,那麼每個變量爲0

Scanner類中沒有定義讀取char的方法,所以只能先讀取string然後再轉化爲char。具體方法next().charAt(0)。
java讀取一個二維字符數組
char[][] chs = new char[13][13];
for(int i = 0;i < chs.length; i++) {
chs[i] = sc.next().toCharArray();
}

布爾數組的默認值是false

回溯法(回溯法與深度優先搜索策略)
求全排列
李白打酒

枚舉法:有序的去嘗試每一種可能
一些寫算法的思想:
想一直做某個動作時,可以想到while,while判斷條件填終止程序的條件

常見字符的ascii碼

**

3.28

**
一、統計一個字符串中每個字符出現的次數
StringBuffer可以通過toString方法轉換成String
將字符的數字轉爲數字 ch-‘0’

小貼士: 字符的ASCII碼
space 32
0 48
9 57
A 65
Z 90
a 97
z 122

space 到 z 的範圍爲122

0 到 z 的範圍爲 122

數據結構:HashMap,鍵值對的形式
import java.util.HashMap
put(key,value)放入鍵和值
get(key) 通過key獲得值

如何遍歷map獲得key、value
通過entrySet可以直接將key和value取出

list是有序集合,set是無序集合,所以list可以用sort方法排序

二、從文件讀入字符

三、今日寫遞歸
注意遞歸的判斷結束條件的順序
注意結束時的return,否則可能會有數組越界的可能(檢查:可以通過打印step的值分析越界的情況)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章