每日肥學
- ?題外話
- ?演算法題
- ?一點點思路
- ?原始碼和詳解
- ?面試題
- 特別介紹
?題外話
昨天有小伙伴找我,問有很多題不會怎么辦?了解完之后發現是資料結構這塊還不太了解,很多知識不知道怎么建鏈表和堆疊都不太了解,我建議還是從資料結構看看把這塊補上來我們再慢慢來刷題,至于怎么補如果小伙伴沒有好的計劃也可以來私聊我,我給大家找找資源,

?演算法題
給你一個非負整數陣列 nums ,你最初位于陣列的第一個位置,
陣列中的每個元素代表你在該位置可以跳躍的最大長度,
你的目標是使用最少的跳躍次數到達陣列的最后一個位置,
假設你總是可以到達陣列的最后一個位置,
示例 1:
輸入: nums = [2,3,1,1,4]
輸出: 2
解釋: 跳到最后一個位置的最小跳躍數是 2,
從下標為 0 跳到下標為 1 的位置,跳 1 步,然后跳 3 步到達陣列的最后一個位置,
示例 2:
輸入: nums = [2,3,0,1,4]
輸出: 2
提示:
1 <= nums.length <= 104
0 <= nums[i] <= 1000
?一點點思路
這個題你需要注意再哪一個位置,這個位置上的數為你的最大跳躍長度而不是必須長度,nums = [2,3,1,1,4]為例再下標為零的時候值為二,你可以跳小于等于2的長度,不知道為啥我一下子想起來了圖論里的prim演算法,哈哈哈這當然是我瞎想的了,我們今天的所用的解法被世人稱為貪心演算法,因為它需要再眾多結果中找到最佳的那個,
?原始碼和詳解
class Solution {
public int jump(int[] nums) {
int length = nums.length;
int end = 0;
//記錄最大的位置是為了得到所謂的貪心最佳值,因為我們要找
//最短的跳躍當然是數值越大越好了
int maxPosition = 0;
int steps = 0;
for (int i = 0; i < length - 1; i++) {
//這里要遍歷陣列每一個元素來進行比較找到值最大的那個
maxPosition = Math.max(maxPosition, i + nums[i]);
//用來記錄跳躍的步數條件是遍歷的位置等于之前跳躍的值的位置
if (i == end) {
end = maxPosition;
steps++;
}
}
return steps;
}
}
?面試題
關于Mybatis的面試知識點基礎類
1、什么是Mybatis?
Mybatis是一個半ORM(物件關系映射)框架,它內部封裝了JDBC,開發時只需要關注SQL陳述句本身,不需要花費精力去處理加載驅動、創建連接、創建statement等繁雜的程序,程式員直接撰寫原生態sql,可以嚴格控制sql執行性能,靈活度高,MyBatis 可以使用 XML 或注解來配置和映射原生資訊,將 POJO映射成資料庫中的記錄,避免了幾乎所有的 JDBC
代碼和手動設定引數以及獲取結果集,通過xml 檔案或注解的方式將要執行的各種 statement 配置起來,并通過java物件和
statement中sql的動態引數進行映射生成最終執行的sql陳述句,最后由mybatis框架執行sql并將結果映射為java物件并回傳,(從執行sql到回傳result的程序),
2、Mybaits的優點:
基于SQL陳述句編程,相當靈活,不會對應用程式或者資料庫的現有設計造成任何影響,SQL寫在XML里,解除sql與程式代碼的耦合,便于統一管理;提供XML標簽,支持撰寫動態SQL陳述句,并可重用,與JDBC相比,減少了50%以上的代碼量,消除了JDBC大量冗余的代碼,不需要手動開關連接;
很好的與各種資料庫兼容(因為MyBatis使用JDBC來連接資料庫,所以只要JDBC支持的資料庫MyBatis都支持)
能夠與Spring很好的集成;
提供映射標簽,支持物件與資料庫的ORM欄位關系映射;提供物件關系映射標簽,支持物件關系組件維護,
3、MyBatis框架的缺點: SQL陳述句的撰寫作業量較大,尤其當欄位多、關聯表多時,對開發人員撰寫SQL陳述句的功底有一定要求,
SQL陳述句依賴于資料庫,導致資料庫移植性差,不能隨意更換資料庫,
特別介紹
📣小白練手專欄,適合剛入手的新人歡迎訂閱編程小白進階
📣python有趣練手專案里面包括了像《機器人尬聊》《惡搞程式》這樣的有趣文章,可以讓你快樂學python練手專案專欄
📣另外想學JavaWeb進廠的同學可以看看這個專欄:傳送們
📣這是個面試和考研的演算法練習我們一起加油上岸之路
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/301575.html
標籤:其他
下一篇:2021-09-19
