題目:如標題
例子:,測試了別的也ok
left和right是為了找到他左右兩邊第乙個和它不等的數,注意不要下標溢位
在判斷nums[mid]處於非遞減還是非遞增還是最大的時候一定要注意等號,因為可能乙個不小心就跑到break那裡去了。。。
因為在邊界的時候nums[left]=nums[mid],或nums[right]=nums[mid]
#include#includeusing namespace std;
class solution
int right=mid;
while(nums[right]==nums[mid] && right=nums[left]&&nums[mid]<=nums[right])//在左邊陣列,公升序 ,帶「=」「=」「=」 帶「=」「=」「=」
else if(nums[mid]<=nums[left]&&nums[mid]>=nums[right])//在右邊陣列,降序 帶「=」「=」「=」 帶「=」「=」「=」
else
}}};
int main()
solution so;
cout<}
嚴格遞增和非嚴格遞增最長遞增子串行長度
最長遞增子串行,給定乙個無序整數陣列nums 字串也可以,不重要 給出最長嚴格遞增子串行的長度。比如輸入 1,2 1,1,1,4,0 輸出3,最長遞增子串行 1,2,4 當然可能不唯一,1,1,4 也是乙個,但是並不影響長度。強行遍歷就不說了,時間複雜度o 2 n 簡直 思路1 動態規劃,建立乙個陣...
二叉樹 非遞迴遍歷(先 中 後)
include include include define maxsize 20 最多結點個數 using namespace std 二叉鍊錶 typedef struct bnodebnode,btree 順序棧 typedef btree datatype typedef structseq...
先 中 後 遞迴,非遞迴 二叉樹
import com.ccut.aaron.stack.linkedstack public class binarytree 前序遍歷非遞迴的方式 public void preordernonrecursive binarytreenode root if stack.isempty break...