1.有序陣列int i1 = ; int i2 = ;
2.將其中乙個有序陣列倒序取負值。
3.將陣列拼接integer i3 = ;
4.然後先正向迴圈i1,依次取出i2中元素,求和,若和大於等於0,正向迴圈結束,start=i,否則start=i1.length-1;
5.然後先反向迴圈i2,依次取出i1中元素,求和,若和小於等於0,反向迴圈結束,end=i,否則end=i1.length;
6.start和end即為差值最小元素下標,從i3中直接獲取即可。
public static void main(string args) ;int i2 = ;
integer i3 = ;
int start = -1;
int end = -1;
int max = i3.length - 1;
outer1:
for (int i = 0; i < i1.length; i++) }}
if(start == -1)
outer2:
for (int i = max; i >= i2.length; i--) }}
if(end == -1)
system.out.println("差值最小的兩個元素為:"+i3[start]+"-----"+i3[end]);
}
求陣列中的最小值
群裡同學出的題目 假設一陣列 null,2,5,null,10,3 求最小值 想到三種方法 1 for 迴圈 2 sort排序 3 把null乾掉 測試了下三個的效率 如下 先造個大陣列 var a b null,2,5,null,10,3 var i 1000 while i 1 for迴圈 co...
求兩個有序陣列歸併之後的第k個最小值
1.題目 給定兩個有序陣列 公升序 求兩個陣列合併之後的第k小值。2.分析 常規演算法將陣列合併,之後從前向後遍歷一次,找到k位的值,時間複雜度o m n 改進之後的演算法 不需要歸併兩個陣列,而是使用兩個指標分別從兩個有序陣列的起始向後走,如果a i b j 那麼i 直到a i b j 如果a i...
求兩個有序陣列歸併之後的第k個最小值
1.題目 給定兩個有序陣列 公升序 求兩個陣列合併之後的第k小值。2.分析 常規演算法將陣列合併,之後從前向後遍歷一次,找到k位的值,時間複雜度o m n 改進之後的演算法 不需要歸併兩個陣列,而是使用兩個指標分別從兩個有序陣列的起始向後走,如果a i b j 那麼i 直到a i b j 如果a i...