Algorithm
題目描述
輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,使得他們的和正好是S,如果有多對數字的和等于S,輸出兩個數的乘積最小的。
輸入
[1,2,4,7,11,15],15
傳回值
[4,11]
代碼
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
ArrayList<Integer> list = new ArrayList<>();
if(array == null || array.length < 2){
return list;
}
int size = array.length;
int num1 = array[0];
int num2 = array[size - 1];
for(int i = 0; i < size; i++){
for(int j = size - 1; j >= 0; j--){
if((array[i]+array[j] == sum) && (num1+num2 == sum)){
if(array[i]*array[j]< num1*num2){
num1 = array[i];
num2 = array[j];
break;
}
}else if ((array[i]+array[j] == sum) && (num1+num2 != sum)){
num1 = array[i];
num2 = array[j];
break;
}
}
}
if(num1 + num2 ==sum){
list.add(num1);
list.add(num2);
}
return list;
}
}
Review
https://medium.com/cma-thinker/go-on-a-road-trip-to-the-southwest-9286987fd6fb
介紹了作者疫情期間,通過參觀了Gustave Baumann的作品展覽,踏上了前往美國西南部的"旅途"
Tips
1、Android 7以上機型進行裁剪,輸出uri使用content協定,抛出Permission Denial錯誤
使用以下代碼也無法解決
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION)
原因是addFlags隻為intent通路輸入的uri提供了權限,而沒有為輸出的uri添權重限
解決方案:
(1)使用grantUriPermission為輸出uri授予權限
(2)将輸出uri替換為File協定,而不是content協定(實踐得出,原因目前還不清楚)
Share
https://ljd1996.github.io/2020/04/23/Javassist%E7%94%A8%E6%B3%95/
介紹了javassist的一些基本用法