暑假习题打卡.7.5

02d18f713c704bae94ea441732276b7c.png

6820765c7611425eb78fb8c9acab1759.png

 第一题:https://leetcode.cn/problems/merge-sorted-array/

将数组nums2[]的值都复制到数组nums1[]再进行排序即可。(这里我选择的是插入排序。)

72e90da59dbe44a18abcbc5a36a4b343.png

 另外评论区也有一种不错的方法。

9d36fa52c3284f6798b7c59fe8849588.png

 第二题:https://leetcode.cn/problems/linked-list-cycle/

采用快慢指针。注意,应将快指针f指向头指针之前的一个结点,这样可以避免非环链表中f被卡住的问题。

错误示范如下:

3b3cd3dc985845bdbad5c153f8c97c0f.png

a039ca7821c64015b56d6acac040fa5c.png

 正确示范:

afca63b2b01b4a65a548bd22946dd9fb.png

第三题:

https://leetcode.cn/problems/3sum/

解题思路如下:

5b33c7caff8a490eb5a7520c2fa63a4a.png

 C++代码如下:

class Solution {
public:
    vector<vector<int>> threeSum(vector<int>& nums) {
        vector<vector<int>>res;
        int len=nums.size(),i=0;
        sort(nums.begin(),nums.end());
        if(len<3||nums[0]>0)
            return res;
        for(i=0;i<len;i++)
        {
            if(nums[i]>0)
                return res;
            if(i>0&&nums[i]==nums[i-1])
                continue;
            int l=i+1,r=len-1;
            while(l<r)
            {
                if(nums[i]+nums[l]+nums[r]==0)
                {
                    res.push_back({nums[i],nums[l],nums[r]});
                    while((l<r)&&nums[l]==nums[l+1])
                        l++;
                    while((l<r)&&nums[r]==nums[r-1])
                        r--;
                    l++;
                    r--;
                }
                else if(nums[i]+nums[l]+nums[r]>0)
                    r--;
                else
                    l++;
            }
        }
        return res;
    }
};

这里需要注意l++;与r--;的位置。

第四题:https://codeforces.com/problemset/problem/1684/B

dad9726e8cd341eb99b711c5f427035a.png

 思路:符号“%”为取余操作符,因此我们只需要考虑被除数比除数的整数倍多出来的部分。可将x(或y/z)的值设为a(或b/c),再根据三个等式验证x(或y/z)的值是否与所设相符。若相符,则x(或y/z)的表达式即为所求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值