LCP 28.采购方案

​​题目来源:

        leetcode题目,网址:LCP 28. 采购方案 - 力扣(LeetCode)

解题思路:

       将数组排序后使用双指针解题。双指针,一个指针从后往前遍历每一个值,另一个指针开始时指向前一个允许最大值,往后遍历直至与另一个指针重合或者两指针数据之和大于目标值。

解题代码:

class Solution {
    public int purchasePlans(int[] nums, int target) {
        double res=0;
        Arrays.sort(nums);
        int pre=0;
        for(int i=nums.length-1;i>0;i--){
            if(nums[i]>=target){
                continue;
            }
            for(int j=pre;j<i && nums[j]<=target-nums[i];j++){
                pre=j;
            }
            
            if(nums[pre]+nums[i]<=target){
                if(pre==i-1){
                    res+=1.0*i*(i+1)/2;
                    break;
                }
                res+=(pre+1);
            }
        }
        return (int)(res%1000000007);
    }
}
 

总结:

        犯了两个错,一个是将取模的模数打错,另一个是将赋值结果的取值范围与计算时的取值范围混淆。

        无官方题解。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值