天天看點

ARTS打卡第十二周(2021.3.27)

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的一些基本用法