題目:
解答:
預設公升序(降序也只是改一點**,不影響)
原理:如果左側最大值大於中間的最小值,則一定會被中間序列包括;同理,如果右側最小值大於中間的最大值,則一定會被中間序列包括。
一遍遍歷 + 兩個指標(兩次掃瞄可一次遍歷完成)
1、從前向後掃瞄陣列,判斷當前array[i]是否比max小,是則將last置為當前array下標i,否則更新max;
2、從後向前掃瞄陣列,判斷當前array[len - 1 - i]是否比min大,是則將first置位當前下標len - 1 - i,否則更新min;
3、返回
1class
solution ;8}
910int last = -1;11
int first = -1;12
13int max =int_min;
14int min =int_max;
1516
int len =array.size();
1718
for (int i = 0; i < len; i++)
1924
else
2528
29if (array[len - 1 -i] >min)
3033
else
3437}38
39return;40
}41 };
面試題 16 16 部分排序
給定乙個整數陣列,編寫乙個函式,找出索引m和n,只要將索引區間 m,n 的元素排好序,整個陣列就是有序的。注意 n m盡量最小,也就是說,找出符合條件的最短序列。函式返回值為 m,n 若不存在這樣的m和n 例如整個陣列是有序的 請返回 1,1 class solution int left 0,le...
演算法 面試題 16 16 部分排序
給定乙個整數陣列,編寫乙個函式,找出索引m和n,只要將索引區間 m,n 的元素排好序,整個陣列就是有序的。注意 n m盡量最小,也就是說,找出符合條件的最短序列。函式返回值為 m,n 若不存在這樣的m和n 例如整個陣列是有序的 請返回 1,1 示例 0 len array 1000000 解法 如果...
部分面試題
1.請程式設計遍歷頁面上所有textbox控制項並給它賦值為string.empty?答 foreach system.windows.forms.control control in this.controls 2.請程式設計實現乙個氣泡排序演算法?答 int array new int int ...