查詢和目標數最接近的或者相等的數

2021-07-11 04:29:33 字數 2160 閱讀 4493

此文**部落格 自己學習標記下,感謝博主。

/*** 查詢出最接近目標值的數,並返回。

* @param array

* @param targetnum

* @return*/

[html]view plain

copy

public static int binarysearchkey(object array, int targetnum)   

int targetindex= 0

;  int left= 0

,right= 0

;   

for (right

= array

.length-1; left!=right;)   

if(targetnum >

midvalue)else  

if (mid <

=1)   

}  int rightnum

= ((integer) array[right]).intvalue();  

int leftnum

= ((integer) array[left]).intvalue();  

int ret

=  math

.abs((rightnum - leftnum)/2) 

>

math.abs(rightnum -targetnum) ? rightnum : leftnum;  

system.out.println("和要查詢的數:"+targetnum+ "最接近的數:" + ret);  

return ret;  

}  

[html]view plain

copy

public static void main(string args)   

/*** 遍歷陣列和要查詢的數值做差,以差:陣列索引存為map,然後對以差為key的陣列排序,拿到差最小的索引。

* @param array

* @param num

* @return

*/[html]view plain

copy

public static integer searchkey(int array,int num)   

system.out.println("陣列和的差值和陣列元素的差值相減的絕對值和位置的對映結果:" + map);  

arrays.sort(temp);  

integer index

= map

.get(temp[0]);    

system.out.println("陣列和的差值和陣列元素的差值相減的絕對值最小值:"+temp[0]+"最小值的key:" +  array[index]);  

return  (integer) array[index];    

}  

/*** 求乙個陣列的最大值

* @param array1

*/[html]view plain

copy

public static void max1(int array1)   

system.out.println("陣列最大值是:"+max);  

}  

/*** 求乙個陣列的最大值

* @param array1

*/[html]view plain

copy

public static void max2(int array1)   

system.out.println("陣列最大值是:"+max);  

}  

/*** 求乙個陣列的最大值

* @param array1

*/[html]view plain

copy

public static void max3(int array1)   

//計算最小值

private bigdecimal calminvalue(bigdecimal arrays)}}

for(int n=0;n

return temp;

}

最接近目標數的三數之和

給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。本題只需要對上一題求三數之和進行少許的修改即可。思路 仍採用雙指標的思路,只不過需要記錄每次移動過程 現的最近的值...

最接近的數

有乙個正整數,請找出其二進位制表示中1的個數相同 且大小最接近的那兩個數。乙個略大,乙個略小 給定正整數int x,請返回乙個vector,代表所求的兩個數 小的在前 保證答案存在。測試樣例 2 返回 1,4 思路 以給出的數為基礎,先將給出的數的二進位制中有幾個1判斷出來,然後再分別判別當前數左邊...

16 。最接近的三數和

16.最接近的三數之和 給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的...