LeetCode top100 最短無序連續子陣列

2021-10-06 09:11:22 字數 1146 閱讀 4128

給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。

你找到的子陣列應是最短的,請輸出它的長度

題目分析

輸入: [2, 6, 4, 8, 10, 9, 15]

輸出: 5

解釋: 你只需要對 [6, 4, 8, 10, 9] 進行公升序排序,那麼整個表都會變為公升序排序

思路(一)

先排序,然後找出最左邊和最右邊不相同兩個數下標即可

/** 

@param nums

* @return

*/var

findunsortedsubarray

=function

(nums)

else

}while

(j>=0)

else}if

(i==nums.length)

else

//return i==nums.length ? 0 : end - start + 1;

};

思路(二)

通過if語句中 使用nums[i]!==arr[i]判斷兩個陣列中當前數字是否相同,如果不相同,再次判斷isnan(left)=false,當前的i值是否為第乙個,我們只需要最左邊的索引以及最右邊的索引,分別找到符合兩個if語句中要求的兩個下標賦值給left和right。

注意:對left和right的初始化要保證它們的isnan()為false;

var

findunsortedsubarray

=function

(nums)

return right-left+1||

0;};

思路(三)

使用targetarr=用來儲存不相等的座標

var

findunsortedsubarray

=function

(nums)

if(targetarr.length===0)

return0;

return targetarr[targetarr.length-1]

-targetarr[0]

+1;}

;

LeetCode top100 每日溫度

請根據每日 氣溫 列表,重新生成乙個列表。對應位置的輸出為 要想觀測到更高的氣溫,至少需要等待的天數。如果氣溫在這之後都不會公升高,請在該位置用 0 來代替。例如,給定乙個列表 temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 ...

LeetCode top100 顏色分類

給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題 題目分析 輸入 2,0,2,1,1,0 輸出 0,0,1,1,...

LeetCode top100 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。題目分析 有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。輸入 輸出 true 輸入 輸出 true 輸入 輸出 false 思路 一 使用棧的方法,後進先出,如果遇見左括號入棧,右括號出戰,最終判...