原创 刪除鏈表中重複的節點

    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