返回信息流给定一个有序数组nums=[5, 4, 1],和一个目标值target=8,使用数组中最少的数使得和等于目标值target。约束条件1.使用最少的数;2.选中的数之间差值最小。注:数组中的数可以拆分,如target=8 = nums[0] + nums[1],其中nums[0]=4 (5=4+1),nums[1] = 4.
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #97730同步于 2019/3/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
求教一个类似2sum,3sum但有些附加和约束8条件的算法问题。
corner
2019/3/10镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
for(i=0;i<nums.length;i++)
{
target=target-nums[i];
if(target<=0)
return i;
}
如果是降序数组的话就是0到nums.length-1,如果升序数组就是nums.length-1到0。因为是有序数组,已经保证了选中的数之间差值最小。而且如果target比当前最大的数都大的话,至少是2个或2个以上的数相加才可以。
我也不知道思路对不对,方便发一下网址吗?我写一下代码看看能不能通过。