【蔚来汽车】蔚来20220713第三题-旅游规划 <模拟、滑动窗口>

【蔚来汽车】蔚来20220713第三题-旅游规划

  牛牛对 n 个城市旅游情况进行了规划,已知每个城市有两种属性 x 和 y ,其中 x 表示去第 i 号城市的花费,y 表示在第 i 号城市游玩后会得到的开心值。

  现在牛牛希望从中挑选出一些城市去游玩,但挑选出的城市必须满足任意两个城市之间花费差值的绝对值小于 k

  请你帮他计算出在满足上述条件下能得到最大的开心值是多少

输入描述:

第一横输入两个整数 n 和 k

接下来 n 行,每行输入两个整数 x 和 y ,分别表示每个城市的两种属性

1 < n <= 100000

1 < k <= 1000000000

0 < x,y <= 1000000000

输出描述:

输出一个整数表示答案

示例输入:

java 复制代码
5 3
1 3
2 1
5 2
3 1
4 3

示例输出:

java 复制代码
6

题解

模拟:先按 x 的大小先排好序,再求最大价值的连续区间

java 复制代码
public class Solution {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int k = in.nextInt();

        int[][] cities = new int[n][2];
        for (int i = 0; i < n; i++) {
            cities[i][0] = in.nextInt();
            cities[i][1] = in.nextInt();
        }
        Arrays.sort(cities, (a, b) -> a[0] - b[0]);

        int maxHappy = 0;
        int curHappy = 0;
        
        
        /* 
        //滑动窗口解法
        for(int i=0,j=0; i<n; i++){
            //当前的Happy值
            curHappy += cities[i][1];

            while (j<=i && cities[i][0]-cities[j][0] >=k){
                curHappy -= cities[j][1];
                j++;
            }
            maxHappy = Math.max(maxHappy,curHappy);
        }*/
        
        for (int i = 0; i < n; i++) {
            int j = i + 1;
            //当前的Happy值
            curHappy = cities[i][1];

            while (j < n && cities[j][0] - cities[i][0] < k) {
                curHappy += cities[j][1];
                j++;
            }
            maxHappy = Math.max(maxHappy, curHappy);
        }
        System.out.println(maxHappy);
    }
}
相关推荐
find1star2 小时前
LeetCode 141:环形链表
java·算法·leetcode·链表
迅翼SwiftWing2 小时前
编队系列(总)|固定翼编队如何实现稳定飞行?通信架构、协同算法与工程约束深度解析
算法·架构
LB21122 小时前
力扣160 21 86
算法·leetcode·职场和发展
小智老师PMP4 小时前
2026深度解析|PMP第八版与NPDP核心侧重点本质区别(管理类证书怎么选)
开发语言·分布式·算法·职场和发展·产品经理
HugoStudio_SWAN4 小时前
洛谷 B4450 / B3867 / B3923 智慧购物、储蓄与做题——从程序到生活
c++·学习·程序人生·算法·生活
a187927218314 小时前
【算法】动态规划第二篇:双序列 DP 三课——继承、计步与断链
算法·leetcode·动态规划·dp·回溯·暴力·算法讲解
江畔柳前堤5 小时前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native
文心快码BaiduComate5 小时前
2026 OPC x AI Coding 趋势案例交流会圆满落幕:一个人就一支研发团队
算法
ACM-moran5 小时前
条件显化(二分单峰函数+构造数列)
算法·推公式·整数三分
闻缺陷则喜何志丹6 小时前
【栈 运算系统】P3719 [AHOI2017初中组] rexp|普及+
c++·算法··洛谷·运算系统