373. Find K Pairs with Smallest Sums

news/2023/12/1 9:14:00

373. Find K Pairs with Smallest Sums

题目链接:https://leetcode.com/problems...

greedy: 先把一组x里面和另外一组y最小元素的组合放进heap,然后每次poll出和最小的,同时放进去有可能成为第二小的组合,即当前y元素的下一个和x元素的组合。

public class Solution {
    public List<int[]> kSmallestPairs(int[] nums1, int[] nums2, int k) {
        if(nums1.length == 0 || nums2.length == 0)  return new ArrayList();
        
        // heap: [nums1[i], nums2[j], i, j]
        PriorityQueue<int[]> minHeap = new PriorityQueue<>(k, (a, b) -> a[0] + a[1] - (b[0] + b[1]));
        // add combination of element from one array with the first element of another
        for(int i = 0; i < Math.min(nums1.length, k); i++) {
            minHeap.offer(new int[] {nums1[i], nums2[0], i, 0});
        }
        // greedy
        List<int[]> result = new ArrayList();
        while(k-- > 0 && !minHeap.isEmpty()) {
            int[] cur = minHeap.poll();
            int i = cur[2], j = cur[3];
            result.add(new int[] {cur[0], cur[1]});
            if(j + 1 < nums2.length) minHeap.offer(new int[] {nums1[i], nums2[j + 1], i, j + 1});
        }
        
        return result;
    }
}

http://www.niftyadmin.cn/n/2436113.html

相关文章

08.Vue3 中的 Vue-Router 和 VueX

Vue3 中的 Vue-Router 和 VueX 先使用 vue create 指令来创建 vue 工程项目&#xff0c;并选择自定义&#xff0c;将 Router 和 VueX 勾上。 勾上以后看主入口 main.js&#xff0c;可以看到项目自动帮我们注册了 vue-router 和 VueX。 // main.js createApp(App).use(store).…

torch.nn.Conv2d()函数详解

import torchx torch.randn(2,1,7,3) conv torch.nn.Conv2d(1,8,(2,3)) res conv(x)print(res.shape) # shape (2, 8, 6, 1)输入&#xff1a; x [ batch_size, channels, height_1, width_1 ] batch_size 一个batch中样例的个数 2 channels 通道数&#xff0c;也…

h5 微场景

兔展&#xff1a; http://www.rabbitpre.com/ 易企秀&#xff1a; http://www.eqxiu.com/site/show 云来&#xff1a; http://www.liveapp.cn/转载于:https://www.cnblogs.com/crazycode2/p/6389156.html

01.TypeScript 基础语法入门

TypeScript 基础语法入门 1. 安装 使用 npm 安装即可 npm install -g typescript2. TypeScript 介绍 TypeScript 是 JavaScript 的超集&#xff0c;因此 TypeScript 可以使用 JavaScript 的所有语法的同时&#xff0c;拓展新的语法。这些新语法使得 TS 相比于 JS 而言&…

02.TypeScript 语法进阶

TypeScript 语法进阶 1. TypeScript 中的配置文件 1.1 初始化 TS 项目和配置项 初始化 tsc --init执行后会在当前目录生成 TS 配置文件 tsconfig.json。 指定文件夹/文件编译 只有直接使用 tsc 编译&#xff0c;不指明编译的文件&#xff0c;才会根据配置文件的配置项来进…

单点登录CAS系列8-客户端配置单点登出

原理 本文内容包括配置单点登出、登出后自动跳转指定资源、CASServer禁用单点登出等 与单点登录相对应&#xff1a;登录的地址是/login&#xff0c;登出的地址是/logout&#xff0c;这里需要配置下面两个Filter SingleSignOutFilter&#xff1a;用来使Session失效&#xff08;要…

03.TypeScript 高级语法

TypeScript 高级语法 1. 类的装饰器 装饰器入门 装饰器本身是一个函数&#xff0c;装饰器通过 进行调用。 要使用装饰器&#xff0c;tsconfig 需要添加允许装饰器的配置&#xff1a; "experimentalDecorators": true, "emitDecoratorMet…

微信公共平台开发1

一、微信公众平台概述1&#xff09;历史背景 微信用户很多&#xff1b;2 ) 什么是微信平台&#xff1a;是腾讯为了用户申请和管理微信公众账号而推出的一个Web平台&#xff0c;而微信公众账号的操作管理在这个平台下进行。所有用户都在腾讯提供的统一微信公众平台下进行相关操…

Nodejs 连接数据库报错:Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol

报错信息 Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client 原因在于权限问题。 在 MySQL 中执行以下 SQL 语句&#xff1a; ALTER USER rootlocalhost IDENTIFIED WITH mysql_…

docker学习 - docker启动和镜像

docker daemon启动 载体为daemon&#xff0c;调度管理engine&#xff0c;任务执行靠jobEngine是map[string]Handler&#xff0c;type Handler func(*Job) Status Daemon的启动流程&#xff1a; 注册serve job、pull job、create job、start job等构建serveapi job&#xff0c;并…

Electron 入门

Electron 入门 本文章的 electron 版本&#xff1a;19.0.3 学习体会&#xff1a; electron 更新非常快&#xff0c;一切以官方文档优先一定多敲代码而不是看看&#xff0c;因为 electron 坑挺多的。提前遇坑&#xff0c;未来的开发体验会更顺畅 1. electron 安装 yarn init -…

Mybatis mapper文件中的转义方法

在mybatis中的sql文件中对于大于等于或小于等于是不能直接写?或者<的&#xff0c;需要进行转义&#xff0c;目前有两种方式: 1.通过符号转义: 转义字符 < < 小于号 > > 大于号 &amp; & 和 &apos; ’ 单引号 …

Nodejs 安装与介绍

Node.js 安装与介绍 1. 用 nvm 管理 node 版本 一般学习的时候&#xff0c;一个版本的 node 已经够用了&#xff0c;直接在官网上下载即可。但是在生产过程中&#xff0c;难免会遇见 node 为不同版本的项目&#xff0c;因此下载 nvm 是挺有必要的事情。如果是 windows 用户&a…

有关HTTP的粗读

一. 写在前面 去年粗读《HTTP权威指南》和《图解HTTP》还有部分《TCP/IP详解》后&#xff0c;觉得心里明亮不少&#xff0c;Web的大门又向我敞开了一些?。如今回想起来说到粗读&#xff0c;对我的形容还是很准确的&#xff0c;因为到现在&#xff0c;我基本忘了看到了什么&a…

torch.nn 和torch.nn.functional的区别浅析

举例&#xff1a; 拿maxpool操作来说 import torchx_input torch.randn(20, 16, 50) # 先定义一个model&#xff0c;再把数据传进去 # pool of size3, stride2 m torch.nn.MaxPool1d(3, stride2) x_output m(x_input) print(x_output.shape) # torch.Size([20, 16, 24])im…

01. 开发博客项目之项目介绍

开发博客项目之项目初步开发 1. 项目介绍 1.1 目标 开发一个博客系统&#xff0c;具有博客的基本功能只开发 server 端&#xff0c;不关心前端 1.2 需求 首页&#xff0c;作者主页&#xff0c;博客详情页登录页管理中心&#xff0c;新建页&#xff0c;编辑页 1.3 技术方案…
最新文章