亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

可整除的和對

可整除的和對

有只小跳蛙 2023-07-19 15:56:47
給定輸入數組ar = [1,2,3,4,5]和k=5,找到可整除的和對,使得輸入數組中的元素相加后得到結果k。示例輸出 - 在本例中符合標準的三對是[1,4], [2,3], and [4,6]。這是我的代碼 -public class DivisibleSumPairs {    public static void main(String[] args) {        int[] inputArr = new int[] {1,2,3,4,5,6};        List<Integer> output = divisibleSumPairs(inputArr, 5);        System.out.println(Arrays.toString(output.toArray()));    }    public static List<Integer> divisibleSumPairs(int[] inputArr, int input) {        List<Integer> output = null;        List<Integer> outputLst = new ArrayList<Integer>();        for (int i = 0; i < inputArr.length; i++) {            for (int j = 1; j < inputArr.length; j++) {                if ((inputArr[i] + inputArr[j]) % input == 0) {                    output = new ArrayList<Integer>(2);                    output.add(inputArr[i]);                    output.add(inputArr[j]);                    outputLst.addAll(output);                }            }        }        return outputLst;    }}我的代碼的輸出結果是 -[1, 4, 2, 3, 3, 2, 4, 6, 5, 5, 6, 4]而我想將其分組為具有兩個元素的子數組 - [1,4], [2,3], and [4,6]。有關如何實現此目標的任何提示。
查看完整描述

1 回答

?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

為了實現您想要的輸出,您需要List<List<Integer>>而不是List<Integer>.?因此,您應該替換以下行:

List<Integer>?outputLst?=?new?ArrayList<Integer>();

List<List<Integer>>?outputLst?=?new?ArrayList<>();

在循環內,替換以下行:

outputLst.addAll(output);

和:

outputLst.add(output);

for我剛剛意識到,由于邏輯錯誤,您還需要更新嵌套循環。從:

for?(int?j?=?1;?j?<?inputArr.length;?j++)

到:

for?(int?j?=?i+1;?j?<?inputArr.length;?j++)


查看完整回答
反對 回復 2023-07-19
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號