python分糖果_分糖果_平安科技笔试题_牛客网
import?java.util.Arrays;
import?java.util.Scanner;
/**
*?n?個(gè)小朋友坐在一排,每個(gè)小朋友擁有?ai?個(gè)糖果,現(xiàn)在你要在他們之間轉(zhuǎn)移糖果,使得最后所有小朋友擁有的糖果數(shù)都相同,
*?每一次,你只能從一個(gè)小朋友身上拿走恰好兩個(gè)糖果到另一個(gè)小朋友上,
*?每個(gè)輸入包含一個(gè)測試用例。每個(gè)測試用例的第一行包含一個(gè)整數(shù)n(1?<=?n?<=?100),
*?接下來的一行包含n個(gè)整數(shù)ai(1?<=?ai?<=?100)。
*?問最少需要移動多少次可以平分糖果,如果方案不存在輸出?-1。
*?例:?輸入?4
*???????????7?15?9?5
*??????輸出?3
*??????移動方式:
*?????????第一次移動??7?13?9?7
*?????????第二次移動??9?11?9?7
*?????????第三次移動??9?9?9?9
*?Create?by?DbL?on?2020/1/9
*/
public?class?Main?{
public?static?void?main(String[]?args)?{
Scanner?in1?=?new?Scanner(System.in);
in1.useDelimiter("\n");
int?n??=?in1.nextInt();
String?nums?=?in1.next();
CandyAllocation(n,nums);
}
/**
*?結(jié)果:輸出一行表示最少需要移動多少次可以平分蘋果,如果方案不存在則輸出-1。
*?@param?n??表示n個(gè)小朋友
*?@param?nums??字符串??每個(gè)小朋友手里的蘋果數(shù)量?以空格隔開
*/
public?static?void?CandyAllocation(int?n,String?nums){
if(n<1){
System.out.println(-1);
return;
}
if(nums.length()<1){
System.out.println(-1);
return;
}
//?對輸入的蘋果數(shù)量進(jìn)行拆分并存儲到一個(gè)數(shù)組中
int[]?nums_int?=?new?int[0];
//?蘋果的總數(shù)
int?num_sum?=?0;
String[]?nums_str?=?nums.split("?");
for?(int?i?=?0;?i?
nums_int?=?Arrays.copyOf(nums_int,nums_int.length+1);
nums_int[nums_int.length-1]?=?Integer.parseInt(nums_str[i]);
num_sum?+=?Integer.parseInt(nums_str[i]);
}
//?如果數(shù)組的長度與輸入的小朋友數(shù)量不等?輸入有誤?輸出-1
if(nums_str.length?!=?n){
System.out.println(-1);
return;
}
//?算出蘋果能否被小朋友們以整數(shù)平分
int?remainder?=?num_sum%n;
//?如果存在余數(shù)??表示沒有方案?輸出?-1
if(remainder>0){
System.out.println(-1);
return;
}
//?算出平均數(shù)??如果存在小朋友手里的蘋果數(shù)量減去平均值的絕對值不能被2整除?則也表示沒有方案
int?avg_num?=?num_sum/n;
for?(int?i?=?0;?i?
//如果確定了方案不存在?結(jié)束循環(huán)??輸出-1
if(Math.abs(nums_int[i]-avg_num)%2?==?1){
System.out.println(-1);
return;
}
}
//?移動過程中?只需要移動蘋果數(shù)量大于平均數(shù)的小朋友到蘋果數(shù)量小于平均數(shù)的小朋友
//?所以,計(jì)算出所有小于平均數(shù)的值與平均數(shù)的差之和對每次移動的數(shù)量2做除即可
int?differ_count?=?0;
for?(int?i?=?0;?i?
if(nums_int[i]
differ_count?+=?avg_num-nums_int[i];
}
}
//?輸出最終結(jié)果
System.out.println(differ_count/2);
}
}
總結(jié)
以上是生活随笔為你收集整理的python分糖果_分糖果_平安科技笔试题_牛客网的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bom event周期_前端知识点总结—
- 下一篇: php成绩查询系统的学习心得_PHP学习