2020-11-07:已知一個正整數陣列,兩個數相加等于N并且一定存在,如何找到兩個數相乘最小的兩個數?#福大大架構師每日一題#
uj5u.com熱心網友回復:
將陣列按從小到大排列,取第一和第二個數相乘就是最小啊uj5u.com熱心網友回復:
這里只說明思路,不考慮相乘int超出范圍依次遍歷陣列元素,判斷 N-當前元素 是否也在陣列存在(保證和為N),如果存在則計算乘積,判斷并保存最小乘積
int min=Integer.MAX_VALUE; //最小乘積初始值
for (int i=0; i<a.length; i++) {
int tmp=N-a[i];//a[i]和N-a[i]是兩個和為N的數
if(tmp>=0) {
//如果N-a[i]在陣列存在, 且兩數相乘小于min
int idx=Aarays. binarySearch(a, tmp);
if(idx!=-1 && idx != i && (tmp=a[i]*tmp)<min) {
min=tmp; //則保存最新的min
}
}
}
System.out.println(min);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/206025.html
標籤:Java相關
上一篇:關于Java連接mysql或jsp連接mysql不成功的一點識訓
下一篇:JSP頁面語言顯示怎么修改
