You are allowed to pick one number in the input list and increment its value by 1. This should be done in such way that the product of all numbers in the list after this change becomes as large as possible. Given the list of numbers as vector numbers, return the maximum product you can obtain. It is guaranteed that the return value will not exceed 2^62.
原题限制number in (1, 1000),这里考虑下负数和0
设A={ai|i=1..n}
那么题目的意思是求Max{(PI(ai|i=1..n,i!=j)))|j=1..n}
首先遍历数组一遍,记录负数(<-1), -1,正数和0的个数
如果全部是正数,那么即时Max{(PI(ai|i=1..n)*(aj+1)/aj)|j=1..n}=(PI(ai|i=1..n)*Max{(aj+1)/aj)|j=1..n}=(PI(ai|i=1..n)*Max{1+1/aj)|j=1..n}==(PI(ai|i=1..n)*(1+1/Min{aj)|j=1..n})
如果有多余1个0,那么就返回0
如果有1个0,
那么如果负数(包括-1)个数为奇数,那么返回0
如果负数(包括-1)个数为偶数,那么就把0变成1计算
剩下没有0
如果负数(包括-1)个数为偶数,
那么如果正数存在,既考虑最小正数+1
如果不存在正数,就把最小(即绝对值最大)的负值+1
剩下负数(包括-1)个数为奇数,
如果有-1,那么返回0(即把-1 加1)
如果没有-1,就把最大(即绝对值最小)的负值+1
不知道考虑清楚了没,呵呵
分享到:
相关推荐
一道简单习题的深度学习.pdf
近期ctf逆向题的一道简单题,新手小白,用它来学习一下手动脱壳。。
这是一个我在高中时自己编写的一个简单的程序,就是用c编写的
已知某个班有n(1)个学生,输入每行为学生姓名(最多20个字符)和其c语言成绩(0~100),请按照成绩从高到低排序后输出。若有相同的,不能改变其顺序。
一道简单的C#题,里面有两种解题的方法,希望初学的同学一起探讨一下。
这个众数出现次数超过了一半。 一共n个数,而且保证有,n,而且每个数^31-1 时间限制 1s 空间限制 2M(你没看错2M)
有关cocos2d-x面试的题目,以解决网上面试题目少的问题!
笔试遇到的一道题,其实挺简单,希望初学编程的同学可以练一练!
1007 Numerical Summation of a Series 简单题,还是蛮有意思的 1045 HangOver 简单题 1049 I Think I Need a Houseboat 简单题 1028 Flip and Shift 简单题,可以DP/BFS/……,但是实际上有数学方法可直接判断...
--一道综合编程题,通过简单的拷贝,展现作者的编程功底,很具有代表性
1007 Numerical Summation of a Series 简单题,还是蛮有意思的 1045 HangOver 简单题 1049 I Think I Need a Houseboat 简单题 1028 Flip and Shift 简单题,可以DP/BFS/……,但是实际上有数学方法可直接判断...
主要为大家详细介绍了一道python走迷宫算法题,用一个二维数组表示一个简单的迷宫,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
一道c++简单的习题,非常简单,十分简单,等你来做。
Humble Numbers 一道简单DP题
c++习题 一道编程题 很简单 十分简单
微笑.doc
操作题一共有六大题,包括3道基本操作题(各5分)、2道简单应用题(分别10、15分)和一道综合应用题(20分)。其中基本操作提多以填空形式出现较为简单,应用题多考察一些常用函数,综合应用题难度较大,需要重点...
直接以一个非常简单的栈溢出例子(基于Linux)来讲解pwn所要用到的一些常用的工具及命令的用例
很简单的很低级的写法,但是自己写的 希望提提意见 改进改进
一道简单题,一道双指针。 2020.09.11 完成每日一题:216. 组合总和III,又是回溯 完成 1576.替换所有的问号,简单题 2020.09.10: 完成每日一题:40.组合总和II,又是回溯,这个月回溯好多 2020.09.09: 完成每日一题...