日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

华为oj题java单词博弈_【华为OJ】201301 JAVA 题目0-1级 将数组分为相等的两组

發布時間:2024/1/23 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 华为oj题java单词博弈_【华为OJ】201301 JAVA 题目0-1级 将数组分为相等的两组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

描述:

編寫一個函數,傳入一個int型數組,返回該數組能否分成兩組,使得兩組中各元素加起來的和相等,并且,所有5的倍數必須在其中一個組中,所有3的倍數在另一個組中(不包括5的倍數),能滿足以上條件,返回true;不滿足時返回false。

知識點:

語言基礎,字符串,循環,函數,指針,枚舉,位運算,結構體,聯合體,文件操作,遞歸

題目來源:

內部整理

練習階段:

初級

運行時間限制:

10Sec

內存限制:

128MByte

輸入:

輸入輸入的數據個數

輸入一個int型數組

輸出:

返回true或者false

樣例輸入:

4

1

5

-5

1

樣例輸出:

true

答案提示:

源代碼:

package?issplittwointarray;

import?java.util.ArrayList;

import?java.util.Scanner;

public?class?Main?{

public?static?void?main(String[]?args)?{

Scanner?sc?=?new?Scanner(System.in);

int?arrayLength?=?sc.nextInt();

int[]?intArray?=?new?int[arrayLength];

for(int?i?=?0;?i?

intArray[i]?=?sc.nextInt();

}

boolean?isSplitTwoEqualArrays?=?Main.isSplitTwoEqualArray(intArray);

System.out.println(isSplitTwoEqualArrays);

}

public?static?boolean?isSplitTwoEqualArray(int[]?intArray){

int?multipleOfFiveSum?=?0;

int?multipleOfThreeSum?=?0;

ArrayList?otherInts?=?new?ArrayList();

for(int?i?=?0;?i?

if(intArray[i]?%?5?==?0){

multipleOfFiveSum?+=?intArray[i];

}?else?if(intArray[i]?%?3?==?0){

multipleOfThreeSum?+=?intArray[i];

}?else?{

otherInts.add(intArray[i]);

}

}

int?difference?=?multipleOfFiveSum?-?multipleOfThreeSum;

ArrayList?accumulationSum?=?new?ArrayList();

accumulationSum.add(0);

for?(Integer?otherInt?:?otherInts)?{

accumulationSum?=?Main.expressionsAccumulation(accumulationSum,?otherInt);

}

for?(Integer?sum?:?accumulationSum)?{

if((sum?==?difference)?||?(sum?==?difference?*?(-1)))

return?true;

}

return?false;

}

public?static?ArrayList?expressionsAccumulation(ArrayList?preSums,?int?extraInt){

ArrayList?accumulationSum?=?new?ArrayList();

for?(Integer?preSum?:?preSums)?{

accumulationSum.add(preSum?+?extraInt);

accumulationSum.add(preSum?-?extraInt);

}

return?accumulationSum;

}

}

時間: 07-31

總結

以上是生活随笔為你收集整理的华为oj题java单词博弈_【华为OJ】201301 JAVA 题目0-1级 将数组分为相等的两组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。