總結:
這次考的并不理想 比賽前好多知識點遺漏 但到此為止已經結束了?
mod
?是?模運算(Modulo Operation)的縮寫,表示求兩個數相除后的?余數
10mod3=1? ?(a % b)??(7%2=1)
1e9代表1乘以10的9次方,也就是十億
異或運算:基于二進制的位運算
Math
通過Math可以直接.出運算
?Math.pow() 計算?a
?的?b
?次方?
double result = Math.pow(double a, double b);
-
返回?
double
?類型結果 -
參數和返回值都是雙精度浮點數
-
Math.PI
Math.abs()
?計算數字的絕對值(即不考慮正負號的值)
pow(3,i)==n
?表示:
-
計算3的i次方(3^i)
-
判斷結果是否等于n
-
如果相等,則n是3的冪次方
-
Math.aqrt()
計算數字的平方根 -
?(
Math.aqrt(9)=3)
-
異或運算
進制轉換
將十進制數?126?轉換為不同進制的結果如下:
通過不斷除以 2.8.10.16,記錄余數,直到商為 0,然后將余數倒序排列。
進制 | 表示方法 | 結果 |
---|---|---|
二進制 | Base 2 | 1111110(2) |
八進制 | Base 8 | 176(8) |
十進制 | Base 10 | 126(10) |
十六進制 | Base 16 | 7E(16) |
十六進制是基于 16 的進制系統,每一位可以是 0 到 9 和 A 到 F(A=10, B=11, ..., F=15)。
日期模擬?
二分查找?
i < arr.length
?(最常用)
-
要用?
1.1 確保所有元素都被檢查<=
-
當?
left == right
?時,區間內仍有一個元素需要檢查: -
使用?
<
?會漏掉?left == right
?的情況 -
使用?
<=
?能確保檢查完所有可能的元素int left = 0; int right = nums.length - 1; // 注意初始右邊界 while (left <= right) { // 關鍵點:使用 <=
-
變量定義
對于循環臨時變量:總是定義在循環內部 降低復雜度
-
int sum=0;while(num>=10){ } sum = 0; // 必須手動重置 } while(num >= 10){int sum = 0; // 定義在內部 // 不需要手動重置sum }
需要保持狀態的變量:才定義在外部
DP:線性 背包 計劃搜索
數組排序
數組查找
-
數組越界
-
始終記住數組索引范圍是0到length-1
-
使用
i < array.length
作為循環條件
-
字符串
? ?