letcode每日一題 分割陣列為連續子串行

2022-07-11 08:09:15 字數 524 閱讀 6155

題目描述如下:

對於陣列中的元素 x,如果存在乙個子串行以 x-1 結尾,則可以將 x加入該子串行中。將 x 加入已有的子串行總是比新建

乙個只包含 x 的子串行更優,因為前者可以將乙個已有的子串行的長度增加 1,而後者新建乙個長度為 1 的子串行,而題

目要求分割成的子串行的長度都不小於 3,因此應該盡量避免新建短的子串行。

基於此,可以通過貪心的方法判斷是否可以完成分割。

使用兩個雜湊表,第乙個雜湊表儲存陣列中的每個數字的剩餘次數,第二個雜湊表儲存陣列中的每個數字作為結尾的子串行

的數量。

**實現如下:

public boolean ispossible(int nums) 

for (int x : nums) else else }}

}return true;

}

letcode每日一題 不同路徑

話不多說,我們上題目 方法一 動態規劃 我們用 f i,j 表示從左上角走到 i,j 的路徑數量,其中 i 和 j 的範圍分別是 0,m 和 0,n 由於我們每一步只能從向下或者向右移動一步,因此要想走到 i,j 如果向下走一步,那麼會從 i 1,j 走過來 如果向右走一步,那麼會從 i,j 1 走...

letcode每日一題 最大間距

今日每日一題,最大間距,一看難度困難,我想ctrl c再ctrl v,但是再一看題,嗯,我好想可以 我的 這道題的難點在於如何用線性的時空複雜度來解決。直接sort然後遍歷陣列當然可以解決問題,但是面試的時候這 種解法肯定是不能讓面試官滿意的。實現 如下 public int maximumgap ...

letcode每日一題 四數相加 II

現在的天氣真的是冷的凍耳朵,做道題來熱熱身吧!題目描述如下 解題思路 a i b j c k d l 0 我們可以把a i b j c k d l 看成兩個整體,即兩個數相加為0,這樣最快的就是把其中一部分放進hash中,直接判斷0 另乙個數的結果在hash中是否存在就可以了。方案一 a為一部分,b...