剑指Offer 40

2023-10-26

使用优先队列,将非负数变为非正数存储,结果变成非负数

class Solution {
    public int[] getLeastNumbers(int[] arr, int k) {
        if(k == 0) return new int[0];
        int[] nums = new int[k];
        Queue<Integer> queue = new PriorityQueue<>();
        for(int i = 0; i < k; i++){
            queue.add(-1 * arr[i]);
        }

        for(int i = k; i < arr.length; i++){
            if(-1 * arr[i] > queue.peek()){
                queue.poll();
                queue.add(-1 * arr[i]);
            }
        }

        for(int i = 0; i < k; i++){
            nums[i] = -1 * queue.poll();
        }
        return nums;
    }
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

剑指Offer 40 的相关文章

  • 【Android】拾物App期末作业

    一 期末作业题目 校园失物 拾物APP 二 实施目的 通过本实训 使受训者可以深入理解Android相关技术 并将所学知识应用到实际的中等规模的程序设计中 同时 通过本实训 受训者可以拓展Android相关的知识 提升受训者的能力 三 实施
  • java中JDK JRE JVM的关系

    1 1 软件开发介绍 程序是为了模拟现实世界 解决显示问题而使用计算机语言编写的一系列有序的指令集合 软件 即一系列按照特定顺序组织的计算机数据和指令集合 有系统软件和应用软件之分 人机交互方式 图形化界面 GUI 命令行方式 CLI 常用
  • IO作业day5

    1 gt 使用两个线程完成两个文件的拷贝 主线程拷贝前一半内容 子线程拷贝后一半内容 并且主线程要阻塞回收子线程资源 2 gt 使用三个进程完成两个文件的拷贝 主线程拷贝前三分之一 子线程1拷贝中间三分之一 子线程2拷贝后三分之一 主线程要
  • 使用 Android 开发 MQTT 客户端

    MQTT 代表消息队列遥测传输 它是一种功能强大的消息传输协议 主要用于机器对机器 M2M 和物联网 IoT 通信上下文 MQTT 在这些情况下是首选 因为它易于实施 并且非常适合资源有限的设备 在本文中 我们将开发一个使用 MQTT 协议

随机推荐

  • c语言结构体简单试题,C语言6结构体练习题6

    第六章 结构体 1 下面对结构变量的叙述中错误的是 A 相同类型的结构变量间可以相互赋值 B 通过结构变量 可以任意引用它的成员 C 结构变量中某个成员与这个成员类型相同 的简单变量间可相互赋值 D 结构变量与简单变量间可以赋值 2 有枚举
  • 如何实现算法中的公平性

    机器学习的公平性问题近几年受到越来越多的关注 该领域出现了一些新的进展 机器学习训练在涉及到性别 种族等与人相关的敏感属性时 常常会由于统计性偏差 算法本身甚至是人为偏见而引入歧视性行为 由此 为消除差别影响 改进机器学习公平性 主要途径包
  • 在jsp中实现表格内设置滚动框

    当我们在页面中需要放置多条数据时 滚动框则将是一个十分不错的选择 在需要加入滚动框的表格内设置标签 table tbody style display block tbody table
  • 利用Python实现卷积神经网络的可视化

    对于深度学习这种端到端模型来说 如何说明和理解其中的训练过程是大多数研究者关注热点之一 这个问题对于那种高风险行业显得尤为重视 比如医疗 军事等 在深度学习中 这个问题被称作 黑匣子 Black Box 如果不能解释模型的工作过程 我们怎么
  • C#网络编程,多个客户端连接服务器端并发送消息

    最近学习进度到了C 网络编程 在学习这一章节的知识点 写了一些小demo 此次发表的为服务器监听端口 和多个客户端连接 获取多个客户端发来的消息 服务器端代码 using System Net using System Net Socket
  • SQL Server迭代求和

    drop table t geovindu create table t geovindu xid int IDENTITY 1 1 price money DebitCredit VARCHAR 2 adate datetime defa
  • Android学习之 Scroller的介绍与使用

    类概述 Android里Scroller类是为了实现View平滑滚动的一个Helper类 通常在自定义的View时使用 在View中定义一个私有成员mScroller new Scroller context 设置mScroller滚动的位
  • 微服务工程搭建过程中的注意点

    1 父工程pom xml文件 1 父工程的maven坐标 2 packaging使用pom 原因 在Spring Cloud微服务工程中 通常会采用多模块的方式进行开发 父工程的pom文件中的packaging标签设置为pom 是因为父工程
  • Spring Framework 入门(一)

    Spring Framework各模块作用介绍 可以参考spring framework的github项目 源码地址 https github com spring projects spring framework 下面我们分别了解下各个
  • SQL所有关键字及其作用:

    以下是MySQL的所有关键字及其作用 ADD 在表中添加新的列或索引 ALL 返回满足条件的所有行 包括重复行 ALTER 修改表的结构 如添加 修改或删除列 ANALYZE 分析并收集表的统计信息 用于优化查询 AND 用于多条件查询的逻
  • wedo2.0编程模块介绍_西门子S7-200 SMART硬件和编程软件简介

    前文给大家简单的讲介绍了一下PLC编程涉及的一些概念型知识 本文开始实践 今天带来的是SIMATIC S7 200 SMART硬件和编程软件简介 SIMATIC S7 200 SMART 是西门子公司经过大量市场调研 为中国客户量身定制的一
  • Java 多线程 --- 按序打印

    Java 多线程 按序打印 方法1 控制变量 使用volatile关键字优化 方法2 synchronized wait notifyAll 方法3 信号量 给你一个类 public class Foo public void first
  • 【深度学习】参数量、模型大小、显存

    对于一个深度学习神经网络来说 其通常包含很多卷积层 用于不断提取目标的特征 或对目标进行最终定位或者分类 1 数据存储精度与存储空间 在深度学习神经网络中 最常见的数据格式是float32 占4个字节 Byte 类似地 float16 占2
  • std::condition_variable

    std condition variable std condition variable 是C 11提供的条件变量 可用于同时阻塞一个线程或多个线程 一般的 生产者线程利用支持std mutex的std lock guard std un
  • 【React Hook】一文让你彻底明白何为State Hook?

    使用 State Hook 下面的例子介绍了 Hook import React useState from react function Example 声明一个叫 count 的 state 变量 const count setCoun
  • 如何解除计算机的启动项,UEFI安全启动怎么关闭 关闭UEFI启动项的方法图解

    大家都知道现在很多电脑都预装win8系统 其系统都开启了UEFI安全启动选项 然而 对于不习惯win8操作界面的朋友来说 可能就会把win8改为win7 但是我们得知道Win8改装Win7需要在BIOS下关闭UEFI选项 如果OS选项已经关
  • ctfshow-萌赛

    目录 web 签到 给她 假声赛 web 签到 很明显的命令执行漏洞 我们把前后闭合即可 payload 1 ls 1 1 cat flag 1 给她 根据题目提示很容易就想到是 git泄露 直接用gitHack扫描题目地址 git 发现存
  • 电子科技大学人工智能期末复习笔记(二):MDP与强化学习

    目录 前言 期望最大搜索 Expectimax Search 马尔科夫决策 MDP offline 超重点 先来看一个例子 基本概念 政策 Policy 折扣 Discounting 如何停止循环 价值迭代 Value Iteration
  • LeetcodeSQL入门——知识点总结(选择/排序/修改/字符串处理/正则)

    LeetcodeSQL入门 选择 排序 修改 字符串处理 选择 sql语言对于空值的判断是IS NULL或者IS NOT NULL eg 某网站包含两个表 Customers 表和 Orders 表 编写一个 SQL 查询 找出所有从不订购
  • 剑指Offer 40

    使用优先队列 将非负数变为非正数存储 结果变成非负数 class Solution public int getLeastNumbers int arr int k if k 0 return new int 0 int nums new