原创 661. Image Smoother

原題 題目描述:給你一個二維數組,每個元素的值要你按照以他爲中心的8個值外加自己的值求平均值,並填在元素位置上,其中有些位置沒有8個鄰居,那麼就找出儘可能多的鄰居算平局值(包括自身),按照這個方法最終返回新矩陣 思路: 先寫一

原创 830. Positions of Large Groups

原題 題目描述:給你一個字符串,輸出連續出現3次及以上的字符的首尾下標(注:是連續出現的位置) 思路 定義首尾指針,初始化都指向0下標 尾指針遍歷整個字符串,當首尾字符相同時,則尾指針向前走,當走到首尾字符不同時,計算首尾相隔距

原创 283. Move Zeroes

原題 題目描述:給定一個數組,把數組中所有的0都放在最後,其他不爲0的數保持原有順序 思路:遍歷數組,並定義一個從0開始的下標變量,若不爲0,則進行覆蓋,最後一路填0,直到長度一致 void moveZeroes(int* n

原创 876. Middle of the Linked List

原題 題目描述:返回一個鏈表的中間位置,若中間位置有兩個,則返回更後的那個 思路:用快慢指針,慢指針一次移動一步,快指針一次移動兩步,當快指針移動到鏈尾或者爲null時,返回慢指針即可 注:按題目意思應該要按鏈表元素個數的奇偶數

原创 717. 1-bit and 2-bit Characters

原題 題目描述:有兩個特殊字符,第一個字符可以用一位表示0。第二個字符可以用兩位(10或11)表示。現在給出一個由幾位表示的字符串。返回最後一個字符是否必須是一位字符。給定的字符串將始終以零結尾 思路:從左到右遍歷,遇到0下標增

原创 167. Two Sum II - Input array is sorted

原題 題目描述:在有序數組中返回數組值相加爲目標值的兩個下標 思路:一左一右的值相加和目標值大小作比較,然後根據結果,縮小左右位置,直到相等 class Solution { public int[] twoSum(i

原创 122. Best Time to Buy and Sell Stock II

原題 題目描述:假設您有一個數組,其中第i 個元素是第i天給定股票的價格。設計算法以找到最大利潤。您可以根據需要完成儘可能多的交易(即,多次買入並賣出一股股票)。注意:您不能同時進行多筆交易(即,您必須在再次購買之前賣出股票)。

原创 268. Missing Number

原題 題目描述:長爲n的數組,元素值爲0~n,且不重複,求你找出未曾出現的那個數字 思路:藉助XOR異或操作的特性即a^b^b=a的騷操作是最快的 移位實現 int missingNumber(int* nums, int n

原创 448. Find All Numbers Disappeared in an Array

原題 題目描述:一個數組存放1~n之間的數值(n爲數組長度),求你找出1~n中未出現在數組中的值,不使用額外空間,複雜度爲O(n) 思路:遍歷數組,把數組的值看成下標,使對應位置的值+n,此工作爲標記.然後再一次遍歷數組,輸出數

原创 674. Longest Continuous Increasing Subsequence

原題 題目描述:返回數組中最大連續遞增序列的元素個數 思路:定義一個計數器,當數組中後一個元素比前一個元素大,計數器自增長,同時定義一個最大長度變量,和計數器每次取較大的那個,當然若不是遞增,則把計數器重置爲1 class S

原创 27. Remove Element

原題 題目描述:在數組中刪除給定的元素,並返回新的數組長度 思路:看代碼 class Solution { public int removeElement(int[] nums, int val) {

原创 746. Min Cost Climbing Stairs

原題 題目描述:在樓梯上,每i步,cost[i]分配了一些非負成本(0索引)。一旦您支付了費用,您可以爬一到兩步。您需要找到最低成本才能到達最高層,您可以從索引爲0的步驟開始,也可以從索引爲1,求上樓頂的最小費用 思路: 要

原创 747. Largest Number At Least Twice of Others

原題 題目描述: 要你判斷具有唯一最大值的數組中最大值是否至少爲其他元素的2倍大,是則返回其下標,不是返回-1 思路:可以一次遍歷找出數組中的最大值和次大值,判斷最大值是否大於次大值的兩倍即可 class Solution {

原创 53. Maximum Subarray

原題 題目描述:定一個整數數組nums,找到具有最大總和並返回其總和的連續子數組(包含至少一個數字)。 思路:這個典型的動態規劃題(dp) 定義兩個變量,一個變量用來記錄下標移到當前位置時的最大和,而這個做法就是當前元素的值加

原创 KMP算法

KMP是對字符串匹配優化的算法,要了解kmp算法由來應先了解傳統的字符串匹配的工作機制 傳統的字符串匹配機制如下 有兩個字符串,上面那個是主串(T),下面那個是模式串(相當於關鍵字,下面稱爲p) 要在T中查找是否含有p,我們要做的工