爱奇艺第一题-小幸运id

代码已经ac,有点长,需要的私聊加微信发给你

思路:  前三个数是一个数组,后三个数是一个数组。如果两个数组和不相等,那么调整的基本思路如下,要么将小数组中的最小值调大,要么将大数组中的最大值调小,具体是调大数组,还是调小数组,取决于 最大值和最小值能调整的幅度。


#爱奇艺#
全部评论
dfs直接暴力过。累不累啊
点赞 回复 分享
发布于 2018-09-15 12:19
这样调整下来,操作次数最小~
点赞 回复 分享
发布于 2018-09-15 12:11
爱奇艺笔试题完全是送分题。。。比美团的简单多了
点赞 回复 分享
发布于 2018-09-17 11:53
就是一直用迭代吗?因为也存在调整一个数以上的情况,所以就是,判断两个数是否相等=>(不相等)改最小的=>判断两个数是否相等=>(不相等)改最小的=>判断两个数是否相等=>(不相等)改最小的=>......=>相等输出次数??????
点赞 回复 分享
发布于 2018-09-15 16:44
为什么不直接贴出来呢
点赞 回复 分享
发布于 2018-09-15 14:12
没有参加,刚看题目写了一段,供大家参考 s=list(map(int,input().split())) a=s[:3] b=s[3:] big=b if sum(b)>sum(a) else a small=a if sum(b)>sum(a) else b x=sum(big)-sum(small) temp=big temp.sort(reverse=1) ans=0 if x==0:     pass else:     for i in range(3):         ans+=1         if sum(temp[:i])>=x:             break print(ans)
点赞 回复 分享
发布于 2018-09-15 13:51
kkkkkkkkkkkkkkk
点赞 回复 分享
发布于 2018-09-15 13:29
四行代码搞定,通过91
点赞 回复 分享
发布于 2018-09-15 13:16
也可以暴力把前三个数字和后三个数字达到0-27需要的步数求出来
点赞 回复 分享
发布于 2018-09-15 13:12
有python版代码么😬
点赞 回复 分享
发布于 2018-09-15 12:57
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String id = scanner.nextLine(); System.out.println(makeLucklyId(id)); } static int makeLucklyId(String id){ int maxSum =0,minSum =0; String maxStr = id.substring(0,3); String minStr = id.substring(3,6); for(int i=0;i<3;i++){ maxSum += id.charAt(i) - '0'; minSum += id.charAt(i+3)-'0'; } if(maxSum == minSum){ return 0; } if(maxSum < minSum){ int tmp = maxSum; maxSum = minSum; minSum = tmp; String str = maxStr; maxStr = minStr; minStr = str; } int diff = maxSum - minSum; int[] diffArray = new int[maxStr.length() + minStr.length()]; int idx = 0; for(int i=0;i<maxStr.length();i++){ int max = maxStr.charAt(i) - '0'; int min = 9 - minStr.charAt(i) +'0'; diffArray[idx++] = max; diffArray[idx++] = min; if(max >= diff ||min >= diff){ return 1; } } for (int i = 0; i < diffArray.length; i++) { for(int j=i+1;j<diffArray.length;j++){ if(diffArray[i] + diffArray[j] >= diff){ return 2; } } } return 3; } 只能有 0 1 2 3 四种结果,暴力出奇迹
点赞 回复 分享
发布于 2018-09-15 12:53
我和你思路一样,但只有91的正确率,哎,还浪费了我一个小时,第二题都没编完。。
点赞 回复 分享
发布于 2018-09-15 12:23
result=两边的差÷9,然后如果有余数result再加1,就是结果
点赞 回复 分享
发布于 2018-09-15 12:13
我只考虑了调整小数里面的大的 73难受
点赞 回复 分享
发布于 2018-09-15 12:13

相关推荐

点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客企业服务