兩個有序陣列,求陣列中差值最小值

2021-09-29 19:53:22 字數 698 閱讀 1123

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...