2016京東商場校園招聘筆試題
問題描述:
無序陣列array, 找到陣列中兩個數的最大差值, 且大數出現在小數之後,如:arr[i]-arr[j], 且
i比如: array 是 [2, 3, 10, 6, 4, 8, 1],最大差值是8(2-10)
方法1
依次訪問陣列中的每乙個元素:
1) 記錄當前訪問過的陣列中的最小值 min_val;
2) 當前元素值arr[i] - min_val 和 max_diff作比較
若大於 max_diff , 則更新它的值
時間複雜度o(n)
空間複雜度o(1)
#include
using
namespace
std;
int maxdiff(int *arr, int n)
int main()
; cout
<7)<}
陣列排序相鄰元素的最大差值
題目 給定乙個陣列,求如果排序之後,相鄰兩數的最大差值,要求時間複雜度o n 且要求不能用非基於比較的排序。解題思路 借助桶排序 created by yzm on 11 12 18.include include includeusing namespace std class maxgap in...
陣列相鄰兩數最大差值
思路 因為要求時間複雜度為o n 且不能用非比較排序,常用的比較排序很難做到o n 這裡是借助n 1個桶,將n個數平均分配到n個桶裡,所以我們所求的最大差值肯定不在乙個桶內 只有乙個數另說 然後依次求出當前桶最小值與前乙個非空桶最大值的差值,求出最大的差值就是我們要的結果。static class ...
陣列中後面元素與前面元素的最大差值
求陣列中兩個元素差的最大值 後面的元素減去前面的元素 o n 時間複雜度o 1 空間複雜度 題目 在陣列中找到兩個元素,計算後面的元素減去前面的元素的差。求出所有差的最大值。你可以認為你在 票,和賣出 就是你的盈利 陣列a 0.n 對於0 i maxdiff 獲取最大差值 return maxdif...