• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

代码随想录Day31

武飞扬头像
UnkownCC
帮助1

455.分发饼干

力扣题目链接

class Solution {
public:
    // 时间复杂度:O(nlogn)
    // 空间复杂度:O(1)

    // 大饼干先喂饱大胃口
    int findContentChildren1(vector<int>& g, vector<int>& s) {
        // 将饼干数组和小孩数组分别排序
        sort(g.begin(), g.end());
        sort(s.begin(), s.end());
        int index = s.size() - 1;
        int result = 0;
        // 从后往前遍历
        for (int i = g.size() - 1; i >= 0; i--) {
            if (index >= 0 && s[index] >= g[i]) {
                result  ;
                index--;
            }
        }
        return result;
    }

    // 小饼干先喂饱小胃口
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(), g.end());
        sort(s.begin(), s.end());
        int index = 0;
        // 从前往后遍历
        for (int i = 0; i < s.size();   i) {
            if (index < g.size() && g[index] <= s[i]) {
                index  ;
            }
        }
        return index;
    }
};

376. 摆动序列

力扣题目链接

class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        if (nums.size() <= 1) {
            return nums.size();
        }
        int curDiff = 0;
        int preDiff = 0;
        int result = 1;
        for (int i = 0; i < nums.size() - 1;   i) {
            curDiff = nums[i   1] - nums[i];
            if ((preDiff <= 0 && curDiff > 0) || (preDiff >= 0 && curDiff < 0)) {
                result  ;
                // 只在摆动变化的时候更新preDiff
                preDiff = curDiff;
            }
        }
        return result;
    }
};

53. 最大子序和

力扣题目链接

全为-1时,答案为-1.

class Solution {
public:
    // 暴力解法
    // 时间复杂度:O(n^2)
    // 空间复杂度:O(1)
    int maxSubArray1(vector<int>& nums) {
        int result = INT32_MIN;
        int count = 0;
        for (int i = 0; i < nums.size();   i) {
            count = 0;
            for (int j = i; j < nums.size();   j) {
                count  = nums[j];
                result = count > result ? count : result;
            }
        }
        return result;
    }

    // 贪心算法
    int maxSubArray(vector<int>& nums) {
        int result = INT32_MIN;
        int count = 0;
        for (int i = 0; i < nums.size();   i) {
            count  = nums[i];
            if (count > result) {
                result = count;
            }
            if (count <= 0) {
                count = 0;
            }
        }
        return result;
    }
};

int main() {
    vector<int> nums(8,-1);
    Solution s1;
    int result = s1.maxSubArray(nums);
    cout << result << endl;
}

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgecgfc
系列文章
更多 icon
同类精品
更多 icon
继续加载