LeetCode 陣列系列(子串行)

2021-08-01 05:15:37 字數 907 閱讀 3985

53. maximum subarray

題目:求最大子串行和

思路:動態規劃——n為連續項之和,如果n<0,將n令為0,即前幾項之和小於零,重新開始計算。

public class solution 

if(n < 0)

}return ret;

}}

152. maximum product subarray

題目:求最小子序列的最大積

思路:動態規劃——用max和min記錄當前最大值和最小值,實際就是找到max*當前數,min*當前數以及當前數三個數的最大值和最小值。

public class solution 

return ret;

}}

238. product of array except self

題目:返回除了自己以外所有元素的積,不允許使用多餘空間

思路:算出所有不為零的數之積,並統計零的個數,然後分類討論。o(n)

public class solution 

p *=nums[i];

}for(int i = 0; i < nums.length; i++)

else

}return nums;

}}

題目要求不用除法,沒看著。

另一種方法,建乙個陣列,將第i位放前i-1的乘積,然後反過來,計算每一項缺少的部分(其實就是它的後幾項)。

public class solution 

int right = 1;

for (int i = n - 1; i >= 0; i--)

return res;

}

LeetCode 字串系列(子串)

30.substring with concatenation of all words 題目 在s找到所有words中所有字串串起來的子字串 包括words中所有字串 的起始位置 思路 參考了別人的解法,but超時,記錄一下。將words中的所有單詞建乙個hashmap,單詞和出現次數。每次新建乙...

LeetCode系列 子集列舉問題 無重複元素

給定一組數 未排序 求它們的所有組合可能.如給定,返回 1 2 3 1 2 1 3 2 3 1 2 3 演算法思路 對陣列排序,從小到大 令 i 0,對已有組合v從後往前進行如下操作 v的最後1個組合內加入第i個元素 將新組合加入到v中 演算法的理解可以通過乙個例子來看 給定s v i 0,j 1,...

LeetCode 查詢陣列系列

33.search in rotated sorted array 題目 在乙個被旋轉一次的遞增陣列中找到目標值。思路 二分法 思路一定要清晰!當mid和目標值不等時,判斷mid和start的大小,大於說明旋轉位置在後面,反之在前面。在後面的時候start mid是遞增的,可以直接判斷目標值在不在其...