原创 刪除鏈表中重複的節點
AcWing打卡活動 《劍指Offer》打卡活動 週二第六題 刪除鏈表中重複的節點 /** * 定義一個虛擬頭結點,值爲-1,這樣就可以保證頭結點不會被刪除 * 使用兩個引用,分別用來校驗是否值一樣 * 該題會完全刪
原创 剪繩子
AcWing打卡活動 《劍指Offer》打卡活動 週二第二題 剪繩子 /** * 1、設 ni >= 5, 3 * (ni - 3) >= ni? 2 * ni >= 9? 衡大於 * 2、ni = 4 時, 拆分爲2 *
原创 在O(1)時間刪除鏈表結點
AcWing打卡活動 《劍指Offer》打卡活動 週二第五題 在O(1)時間刪除鏈表結點 /** * Definition for singly-linked list. * public class ListNode
原创 機器人的運動範圍
AcWing打卡活動 《劍指Offer》打卡活動 週二第一題 機器人的運動範圍 class Solution { public int movingCount(int threshold, int rows,
原创 數值的整數次方
AcWing打卡活動 《劍指Offer》打卡活動 週二第四題 數值的整數次方 class Solution { public double Power(double base, int exponent) {
原创 二進制中1的個數
AcWing打卡活動 《劍指Offer》打卡活動 週二第三題 二進制中1的個數 /** * 思路 * 10010 - 1 = 10001 * 10010 & 10001 = 10000 -> 少了一個1 * 11100
原创 旋轉數組的最小數字
AcWing打卡活動 《劍指Offer》打卡活動 週一第十題 旋轉數組的最小數字 /** * 利用旋轉數組的特點,左邊數組要比右邊數組打,結合二分法即可即可解出 **/ class Solution { publi
原创 矩陣中的路徑
AcWing打卡活動 《劍指Offer》打卡活動 週一第十一題 矩陣中的路徑 class Solution { public boolean hasPath(char[][] matrix, String str)
原创 斐波那契數列
AcWing打卡活動 《劍指Offer》打卡活動 週一第九題 斐波那契數列 /** * 1 1 2 3 5 * 如果使用遞歸,則會多出很多多餘的計算 */ class Solution { public int
原创 二維數組中的查找
AcWing打卡活動 《劍指Offer》打卡活動 第一週第三題 二維數組中的查找 /* 由題目中二維數組的特性可得,每行的最右邊最大, 每列的從上之下依次遞增,故如若從右至左(若行最大值大於小於目標值,則可直接跳過該行), 從上至下遍
原创 二叉樹的下一個節點
AcWing打卡活動 《劍指Offer》打卡活動 週一第七題 二叉樹的下一個節點 public TreeNode inorderSuccessor(TreeNode p) { // 中序遍歷,
原创 替換空格
AcWing打卡活動 《劍指Offer》打卡活動 週一第四題 替換空格 /** * 如若從前向後遍歷,時間複雜度將會是O(n^2), * 如若從後至前遍歷,提前拿到數組擴容的空間,則時間複雜度 * 將會優化到O(n) *
原创 不修改數組找出重複的數字
AcWing打卡活動 《劍指Offer》打卡活動 第一週第二題 不修改數組找出重複的數字 /** * AcWing * 由題目的特性,可根據數組的長度,逐個檢查範圍,如數組的長度爲8 * 則會使用二分法
原创 找出數組中重複的數字
AcWing打卡活動 《劍指Offer》打卡活動 第一週第一題 不修改數組找出重複的數字 /** * 前提條件是 數組中的元素必須小於數組的長度且大於-1 * @param numbers * @r
原创 用兩個棧實現隊列
AcWing打卡活動 《劍指Offer》打卡活動 週一第八題 用兩個棧實現隊列 /** * 用兩個棧實現隊列 * 該題無需考慮時間複雜度,只需要實現操作即可 * create by yifeng */ public c