原创 [leetCode]100.相同的樹

解法一 遞歸 從根結點開始,首先判斷兩棵樹根節點是否爲null,再判斷是否相等,然後再對左子樹與右子樹進行相同的操作。 /** * Definition for a binary tree node. * public cla

原创 [leetCode]38. 外觀數列

解法一 遞歸+雙指針 f(1)=1f(1) = 1f(1)=1 f(2)=11f(2) = \bm11f(2)=11 f(3)=21f(3) = \bm21f(3)=21 f(4)=1211f(4) = \bm12\bm11f(

原创 [leetCode]66. 加一

解法 數組每一位只能包含一位數字,只有當數字大於9時纔會產生進位,所以只需要從後往前遍歷,每次加上進位,當下一位需要進位時j置一,否則置0。循環結束時如果首位爲0則需要擴容數組並將首位置1。 class Solution {

原创 [leetCode]88.合併兩個有序數組

解法一 插入排序 思路:因爲兩個數組是有序的,因此可以在nums1尾部插入一個元素,再對左半部分進行掃描將插入的元素放在合適位置。 class Solution { public void merge(int[] num

原创 [leetCode]83.刪除排序鏈表中的重複元素

解法一 雙指針 思路:跟刪除排序數組相同元素想法一致,想到的是使用雙指針,一個慢指針i,一個快指針j。 首先i指向鏈表頭部,j指向i的下一個元素 如果j元素的值等於i元素的值則跳過重複元素j = j.next,否則不用跳過該元

原创 [leetCode]58.最後一個單詞的長度

解法一 先去除字符串首尾空格,再遍歷整個字符串: 如果爲‘ ’ 則爲一個新詞開始,計數器置0 否則計數器+1 返回計數器的值 class Solution { public int lengthOfLastWord(

原创 [leetCode]69. x 的平方根

解法一 袖珍計算器法 思路:將開方運算轉化爲其他函數運算 注意點:由於對數與指數運算都是浮點型運算,因此存在精度缺失的問題,因此在得到結果的整數部分 ans 後,我們應當找出 ans 與 ans+1 中哪一個是真正的答案。 cla

原创 [leetCode]53. 最大子序和

解法一 貪心算法 思路:如果當前指針之前元素小於0則丟棄之前的數列 class Solution { public int maxSubArray(int[] nums) { int sum = 0;

原创 [leetCode]67.二進制求和

解法1 先將a、b轉化爲10進制整數相加在轉化爲二進制字符串. 但是Java 中: 如果字符串超過 33 位,不能轉化爲 Integer 如果字符串超過 65 位,不能轉化爲 Long 如果字符串超過 500000001位,不

原创 [leetCode]28.實現 strStr()

解法一 滑動窗口 新建一個與needle字符串等長的窗口,從haystack頭部開始滑動,逐一匹配,匹配成功則返回下標。 class Solution { public int strStr(String haysta

原创 [leetCode].合併兩個有序列表

解法一 暴力解法 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next

原创 [leetCode]35. 搜索插入位置

解法 二分查找 因爲這題輸入的是有序數組,需要查找target的插入位置,因此馬上可以想到二分查找算法。 如上圖所示如果查找到了target則返回mid,如果爲查詢到則返回lo或者hi+1。代碼如下: class Soluti

原创 [leetCode]20.有效括號

該題需要檢驗一個由括號組成的表達式是否有效,關鍵思路是:一個正確表達式,它的子表達式也是正確的表達式。這就體現了一種遞歸結構,由於對結構一無所知所以我們不能從內到外處理這個問題。棧結構在表示問題的遞歸結構時可以派上用場。 算法:

原创 [leetCode]27.移除元素

解法一 暴力法 定義一個指針i指向nums第一位,向後遍歷,如果遇到nums[i]=val則將nums[i]之後的元素整體向前移動一位 class Solution { public int removeElement(

原创 [leetCode]26. 刪除排序數組中的重複項

解法 雙指針法 i爲慢指針,j爲快指針,一開始i指向第一個數組元素,j指向第2個數組元素,如果i與j指向的元素相等就移動j指針跳過相同元素,如果跳過重複元素結束(nums[j]!=nums[i])就令i+1指向的元素等於j指向的