欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java貪心算法兩個數(shù)和

李昊宇1年前9瀏覽0評論

Java貪心算法是解決一些最優(yōu)化問題的算法,它在每一步都采取當(dāng)前狀態(tài)下最優(yōu)的選擇,從而得到全局最優(yōu)解。其中,使用貪心算法求解兩個數(shù)和問題是一個典型的案例。

public static int[] sumOfTwo(int[] nums, int target){
Mapmap = new HashMap<>();
for(int i = 0; i< nums.length; i++){
int complement = target - nums[i];
if(map.containsKey(complement)){
return new int[]{map.get(complement), i};
}
map.put(nums[i], i);
}
return new int[]{-1, -1};
}

該算法的思路是先創(chuàng)建一個哈希表,然后使用for循環(huán)遍歷數(shù)組中的每個數(shù),對于每個數(shù)都用目標(biāo)值減去,再通過哈希表查看是否有相應(yīng)的互補值。如果有,直接返回兩個數(shù)的下標(biāo)。如果沒有,則將當(dāng)前數(shù)加入哈希表。

這種方法的時間復(fù)雜度是O(N),空間復(fù)雜度也是O(N)。由于只需要遍歷數(shù)組一次,因此速度非常快。

總之,Java貪心算法對于解決最優(yōu)化問題非常有效。通過對于最優(yōu)化子問題每次都選擇最佳解的方式,可以獲得全局最優(yōu)解,因此貪心算法深受程序員的喜愛。