2021 05 12 給定乙個陣列arr,只能對arr中的乙個子陣列排序, 但是想讓 如何解答呢?

時間 2021-06-27 17:18:43

1樓:

找到最小下標 使得 arr[i+1]" eeimg="1"/>找到最大下標 使得 arr[j]" eeimg="1"/>找到 的時間複雜度是 。若 不存在,則說明陣列已經排好序了,結果是 。

下面假設 均存在且容易看出

假設 ,

求出 的時間複雜度是

只要 且 b" eeimg="1"/>,就令 ,然後令 遞減,直到 ,或者

只要 且 ,就令 ,然後令 遞增,直到 ,或者 =a" eeimg="1"/>

當上面的迴圈結束了以後,答案就是

總的時間複雜度是

本質上就是乙個貪心

2樓:hzcool

序列單調,答案是0。

不單調。

滿足要求的劃分為三部分,L,M,R,M就是我們要的子陣列(可以往左右新增-inf和inf保持L,R非空)。 那麼L,R是單調不減的,並且M的最小值 >= L的最右端值,M的最大值 <= R的最左端值。

嘗試順序從左往右列舉M,R的分界,這個只要先倒著預處理出序列的最長下降以及順序列舉的最大值就可以確定分界點是否合法。 然後L,M的分界點取最靠右,這個分界點單調左移的。

所以總複雜度O(n)就可以解決這個問題

2021 03 20 給定乙個二維陣列matrix,其中的值不是0就是1,返回全部由 如何解答呢?

mathe 我們可以先考慮計算每個1它左邊包含自身連續的1的數目 如果它本身為0,那麼計數也設定為0 比如對於矩陣 0110111 1100011 1110011 0111100 計數結果為 0120123 1200012 1230012 0123400 然後依次分析每一列 比如第一列有兩個連續的1...

2021 04 04 給定乙個非負陣列arr,和乙個正數m。 返回arr的所有子串行 如何解答呢?

Joker 先求字首和。掃瞄字首和陣列 Sum i Sum i m 插入到 Set 裡面 同時求 Sum i m 和 Sum i m m 的upper bound 就是比它大的最小 Set 中元素 upper bound 對應乙個 Sum j 用這個 Sum i Sum j m 更新答案。更新答案的...

用python寫乙個函式,可以判斷兩個陣列是否環型相等。跪拜大佬幫忙解答一下?

薛衣人 defequal arr1 arr2 if arr1 isNone or arr2 isNone return False count1 arr1 count x forxin sorted set arr1 count2 arr2 count x forxin sorted set arr...