代码随想录算法训练营第二十一天 | Javascript | 力扣Leetcode | 贪心 | 1005. K次取反后最大化的数组和、134. 加油站

目录

前言

简介

[题目链接:1005. K次取反后最大化的数组和](#题目链接:1005. K次取反后最大化的数组和)

[题目链接:134. 加油站](#题目链接:134. 加油站)


前言

踏平坎坷成大道,斗罢艰险又出发!

自律的尽头是自控,自控的尽头是硬控

愿道友们披荆斩棘,终能得偿所愿。

简介

本人是小几年经验的前端开发,算法基础只有力扣几十道题,非常薄弱。

今天是个人的代码随想录算法硬控自己第22天,继续贪心。

贪心妙啊!

题目链接:1005. K次取反后最大化的数组和
javascript 复制代码
/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number}
 */
var largestSumAfterKNegations = function (nums, k) {
    nums.sort((a, b) => a - b);
    let res = 0, index = -1;
    // 贪心思路:先由小到大处理负数,逐个变正
    for (let i = 0; i < nums.length; i++) {
        if (nums[i] < 0 && k > 0) {
            nums[i] *= -1;
            k--;
        }
        if (k <= 0) break;
    }
    // 如果k>0,那么此时nums里必定都是非负的
    // 只需再从小到大排序且对第一个元素也就是最小值判断正负即可  
    if (k > 0) {
        nums.sort((a, b) => a - b);
        nums[0] = k % 2 === 1 ? -nums[0] : nums[0];
    }
    for (let i = 0; i < nums.length; i++) res += nums[i];

    return res;
};
题目链接:134. 加油站
javascript 复制代码
/**
 * @param {number[]} gas
 * @param {number[]} cost
 * @return {number}
 */
var canCompleteCircuit = function (gas, cost) {
    let currSum = 0, totalSum = 0, start = 0;
    for (let i = 0; i < gas.length; i++) {
        currSum += (gas[i] - cost[i]);
        totalSum += (gas[i] - cost[i]);
        if (currSum < 0) {
            start = i + 1;
            currSum = 0;
        }
    }
    if (totalSum < 0) return -1;
    return start;
};
相关推荐
m0_5474866612 小时前
《数据结构与算法》全套PPT课件2026(中国海洋大学)
数据结构·算法
旖旎夜光12 小时前
LeetCode 904:水果成篮(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
怪奇云呼军12 小时前
G.711、Opus 和重采样会拖慢识别吗?闪电智能VoiceAgent 的音频入口怎么选
java·人工智能·python·算法·云计算·音视频
ZC跨境爬虫12 小时前
LeetCode 27. 移除元素(双指针详解 + Java Python 多解法对比)
java·python·leetcode
乐观勇敢坚强的老彭13 小时前
C++ 竞赛常用算法模板速查表
开发语言·c++·算法
Dr.kangder14 小时前
嵌入式面试总结(十六)——AMBA总线
面试·职场和发展·架构·嵌入式·虚拟化·总线
高洁0114 小时前
工信部教考中心证书
人工智能·深度学习·算法·机器学习·知识图谱
我变成萤火虫14 小时前
河南萌新联赛2026第(三)场:郑州轻工业大学
数据结构·c++·算法·贪心算法·stl·深度优先·哈希算法
Dr.kangder14 小时前
嵌入式面试总结(十九)——内存泄露
单片机·算法·面试·职场和发展·架构·硬件架构
Dr.kangder14 小时前
嵌入式面试总结(十七)——DMA总线
面试·职场和发展·架构·嵌入式·总线