首页 > 其他分享 >day34 1005

day34 1005

时间:2022-10-24 21:34:11浏览次数:54  
标签:stream nums int day34 Arrays 1005 sum

1005. K 次取反后最大化的数组和

class Solution {
    public int largestSumAfterKNegations(int[] nums, int k) {

        Arrays.sort(nums);
        int i=0;
        while(k>0&&i<nums.length&&nums[i]<0){     //先把负数给处理掉 (左边的负数 绝对值肯定最大  所以左边开始处理)
            nums[i]=-nums[i];
            i++;
            k--;
        }
        //此时判断  k的次数  如果 k==0 说明已经是最优解了  直接求和
        if(k==0) return Arrays.stream(nums).sum();

        //如果k>0  说明 负数的情况已经处理完  ,那么要达到最大和,只能把k用在最小的正数上
        //此时  只能对 最小正数操作 ,如果k为偶数那和就不用边,如果是奇数,那就动最小的
        Arrays.sort(nums);  //重新排序一下 全是>=0 的数
        if(k%2==1&&nums[0]!=0){   //特殊情况 如果为0 那就不用变
            nums[0]=-nums[0];
        }
        return Arrays.stream(nums).sum();  
    }
}

134. 加油站

image

class Solution {
    public int canCompleteCircuit(int[] gas, int[] cost) {
        //先判断入是不是大于出,如果小,不用继续了
        if(Arrays.stream(gas).sum()-Arrays.stream(cost).sum()<0) return -1;/

        int start=0;
        int sum=0;
        for(int i=0;i<gas.length;i++){//因为是环(而且前提条件已经通过),不满足条件的end+1开始必是满足条件的
            sum=sum+gas[i]-cost[i];

            if(sum<0){
                start=i+1;
                sum=0;
            }
        }
        return start;


    }
}

标签:stream,nums,int,day34,Arrays,1005,sum
From: https://www.cnblogs.com/wdnmdp/p/16823057.html

相关文章

  • 1005 继续(3n+1)猜想(JAVA)
    卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=......
  • 20221005(补
    20221005题目简单点朴素算法​ 很容易想到存下每个位置后离它最近的各个字母的位置。然后再暴力地从答案区间\([l,r]\)的离左端点最近的\(e\)开始按\(e,a,s,y\)的顺序......
  • 海康威视无法添加到萤石云问题-20221005
    问题描述:型号:DS-2CD2245XM-LGLSET添加到海康互联没问题,但是直接添加到萤石云会提示添加失败(102037)解决方法:在萤石云接入时选择设备令牌二维码,如下图设备令牌中......
  • 20221005
    20221005简单点题目背景今天有个巨佬不讲题德,出了个题,说他是乱出的水题。他出的可不是水题啊,Trie树,后缀树,AC自动机,训练有素;后来听说他打了三年NOI,看来是,有备而来。题......
  • Solution Set -「NOIP Simu.」20221005
    \(\mathscr{A}\sim\)「CF1252G」PerformanceReview  Link&Submission.  Tag:「水题无tag」  记\(A=a_1\),对于任何其他的\(a\),我们只关心它与\(A\)......
  • 221005 %你赛
    T1题意给出一个长度为\(n\)的字符串\(S\)与一个长度为\(n\)的\(01\)串\(A\)。Bob会从\(1\)开始一直到\(n\)枚举\(i\),如果\(......
  • 初学C语言笔记221005
    realloc调整动态内存开辟空间的大小​int*p1=(int*)malloc(10*sizeof(int));​if(p1==NULL){printf("%s",strerror(errno));}else{*p1=0x12345678;*......
  • 1005 继续(3n+1)猜想
    1.1题目1.2思路1.3代码 题目:卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以......
  • pta甲级1005-1009+cf每日水题
    1005:简单模拟,数组打表1#include<bits/stdc++.h>2usingnamespacestd;3#defineintlonglong4#defineIOSios_base::sync_with_stdio(0);cin.tie(0);cout.......
  • PAT (Basic Level) Practice 1005 继续(3n+1)猜想 分数 25
    卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如......