首页 > 其他分享 >134. 加油站c

134. 加油站c

时间:2024-03-11 14:44:24浏览次数:25  
标签:星期 int gasSize 随想录 加油站 134

 

ji、

假设26号复试的话,只有15天复习了。

争取一个星期刷完代码随想录,最后一个星期来准备英语和重刷。

int canCompleteCircuit(int* gas, int gasSize, int* cost, int costSize) {
    int sum=0;
    int* oil=(int*)malloc(sizeof(int)*gasSize);
    for(int i=0;i<gasSize;i++){
        oil[i]=gas[i]-cost[i];
        sum+=oil[i];
    }
    if(sum<0) return -1;
    int head=0,tail=0,n=0,x=0;
    while(n!=gasSize){
        int t=x+oil[tail];
        if(t<0){
            if(head==tail){
                head=(head+1)%gasSize;
                tail=(tail+1)%gasSize;
            }else{
                n--;
                x-=oil[head];
                head=(head+1)%gasSize;
            }
        }else{
            tail=(tail+1)%gasSize;
            n++;
            x=t;
        }
    }
    return head;
}

结果:

标签:星期,int,gasSize,随想录,加油站,134
From: https://www.cnblogs.com/llllmz/p/18066050

相关文章

  • ABC134F Permutation Oddness
    [ABC134F]PermutationOddness好题,牛牛的一个套路——\(\textsfH\)\(\textsf{anghang}\)写起来简单,想起来难的一个东西,难点主要是在状态设置上我们可以把\(1\simN\)拆点,于是原题相当于求一个二分图的完美匹配,并使其怪异度为\(k\)我们考虑设置\(f_{i,j,k}\)......
  • (33/60)K次取反后最大化的数组和、加油站、分发糖果
    K次取反后最大化的数组和leetcode:1005.K次取反后最大化的数组和贪心法思路两次贪心:(每次取反k--)排序,一次遍历,按绝对值从大到小地把负数取反。如果K次取反没用完,再排序一次,反复取反最小元素。(或者一开始就按绝对值从大到小排序,只需排序一次)复杂度分析时间复杂度:O(Nlo......
  • 代码随想录算法训练营第三十三天 | 135. 分发糖果, 134. 加油站, 1005.K次取反后最大化
      1005.K次取反后最大化的数组和 已解答简单 相关标签相关企业 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组:选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。重复这个过程恰好 k 次。可以多次选择同一个下......
  • 代码随想录算法训练营第三十三天| ● 1005.K次取反后最大化的数组和 ● 134. 加油站
    K次取反后最大化的数组和 题目链接:1005.K次取反后最大化的数组和-力扣(LeetCode)思路:首先增序排序,然后依次将负值取反,如果负数先用完,则再排序一次,将最小的正数取反之后求和;如果k先用完,直接求和。注意sort默认是增序排序,若想要要降序,则不能使用sort(nums.end(),nums.begin())......
  • cf1340d-solution
    CF1340DSolutionlink手❤玩❤一❤下,答案大概就是所有点的度数最大值。下面证明。首先这个肯定是答案的下界,因为度数最大的点至少被经过了它的度数次。现在考虑构造。对于一棵以\(u\)为根的子树,如果我们能证明第一次到\(u\)的时间是\(t\),最后一次到\(u\)的时间是\(t-......
  • Poj 3134 Power Calculus(IDA*)
    3134--PowerCalculus(poj.org)相当于是问1经过多少次能变成n,val[pos]<<(depth-now)为估计函数,如果最快都不能到n,就returnfalse#include<iostream>usingnamespacestd;constintN=1010;intn,pos,val[N];boolIDAstar(intnow,intdepth){if(now>depth)return......
  • CF1348
    传送门A:一个组\(2^n+2^1+\dots+2^{\frac{n}{2}-1}\),另一个组剩下的。B:考虑不停循环。如果不同的数字超过\(k\),无解。否则先把原序列去重,然后把末尾补一些数补成\(k\)个,再把这个新序列循环\(n\)次。C:先把字符们排序。肯定先把最小的\(k\)个字符作为各自的开头......
  • 代码随想录 day34 K 次取反后最大化的数组和 加油站 分发糖果
    K次取反后最大化的数组和按照元素的绝对值大小进行排序把绝对值大的且小于0的取反如果还能取反那么奇数次的话就把绝对值小的取反偶数次不用管加油站首先如果总油量小于总消耗是一定不能跑完的这里的思路是如果[0,i]区间不能油量小于消耗那么就尝试从下一个i+1......
  • 《幻兽帕鲁》爆火,大厂坐不住了:这游戏是 AI 设计的?丨 RTE 开发者日报 Vol.134
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表......
  • 吴师兄学算法day08 贪心 134. 加油站
    题目:134.加油站理解难点:理解比较难,就是遍历1遍,尽可能找局部满足要求的。如果总油耗满足要求。那局部油耗找的出发点就是对的。遍历的时候,因为答案唯一,要么就满足要求,要么不满足要求。而<0证明之前的都不满足要求,满足要求的一定在后面。这题还是个环,环这里有点没太理解。环......