Golang | Leetcode Golang题解之第315题计算右侧小于当前元素的个数

news2024/12/24 20:54:00

题目:

题解:

var a, c []int

func countSmaller(nums []int) []int {
    resultList := []int{}
    discretization(nums)
    c = make([]int, len(nums) + 5)
    for i := len(nums) - 1; i >= 0; i-- {
        id := getId(nums[i])
        resultList = append(resultList, query(id - 1))
        update(id)
    }
    for i := 0; i < len(resultList)/2; i++ {
        resultList[i], resultList[len(resultList)-1-i] = resultList[len(resultList)-1-i], resultList[i]
    }
    return resultList
}

func lowBit(x int) int {
    return x & (-x)
}

func update(pos int) {
    for pos < len(c) {
        c[pos]++
        pos += lowBit(pos)
    }
}

func query(pos int) int {
    ret := 0
    for pos > 0 {
        ret += c[pos]
        pos -= lowBit(pos)
    }
    return ret
}

func discretization(nums []int) {
    set := map[int]struct{}{}
    for _, num := range nums {
        set[num] = struct{}{} 
    }
    a = make([]int, 0, len(nums))
    for num := range set {
        a = append(a, num)
    }
    sort.Ints(a)
}

func getId(x int) int {
    return sort.SearchInts(a, x) + 1
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972915.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端开源插件

Luckysheet&#xff1a;类似Excel&#xff0c;在线电子表格工具 源码地址 https://github.com/dream-num/Luckysheet Luckysheet 已不再维护&#xff0c;推荐使用 Univer 替代 | Luckysheet文档Luckysheet &#xff0c;一款纯前端类似excel的在线表格&#xff0c;功能强大、…

Java重修笔记 第二十七天 匿名内部类

匿名内部类 1. 定义&#xff1a;无类名&#xff08;底层自动分配类名“外部类名$1”&#xff09;&#xff0c;既是类也是对象&#xff0c;定义在外部类的局部位置&#xff0c;例如方法体和代码块中&#xff0c;通过new类或接口并在大括号里重写方法来实现。 2. 使用场景&…

自定义监控

代码说明&#xff1a; 导入必要的库 import time import psutil import GPUtil from prometheus_client import start_http_server, Summary, Counter, Gaugepsutil&#xff1a;用于获取系统的CPU、内存、磁盘和网络信息。GPUtil&#xff1a;用于获取GPU信息。prometheus_cli…

git拉完代码总是自动创建一个新的节点

git拉完代码&#xff0c;总是自动生成弹出这个信息 然后还会在git上面留下一个节点&#xff0c;这个节点没啥用&#xff0c;显示着感觉有点碍事。 而且后续的git push 之后&#xff0c;会覆盖掉自己的git commit 的提示&#xff0c;其他人cr代码的时候看到的是 解决方法&#…

【深度学习】【语音TTS】OpenVoice v2,测评,中英文语料,Docker镜像,对比GPT-SoVITS、FishAudio、BertVITS2

https://github.com/myshell-ai/OpenVoice/blob/main/docs/USAGE.md 实际体验OpenVoice v2的TTS效果。 文章目录 环境启动 jupyter代码代码分析主要模块和功能测试一些别的中文和中英文混合总结优点缺点对比GPT-SoVITS、FishAudio、BertVITS2使用我的Docker镜像快速体验OpenVo…

uni-app封装组件实现下方滑动弹出模态框

子组件 <template><div class"bottom-modal" :class"{show: showModal}"><div class"modal-content" :class"{show: showModal}"><!-- 内容区域 --><slot></slot></div></div></…

收银系统源码-分销商城视频介绍

系统介绍 专门为零售行业的连锁店量身打造的收银系统&#xff0c;适用于常规超市、生鲜超市、水果店、便利店、零食专卖店、服装店、母婴用品、农贸市场等类型的门店使用。同时线上线下数据打通&#xff0c;线下收银的数据与小程序私域商城中的数据完全同步&#xff0c;如商品…

欧科云链7月安全月报 | 私钥泄露损失约占总损失88%,超2.6亿美元

7 月全网累计造成损失约 2.9 亿美元&#xff0c;因私钥泄露所造成损失占总损失的 88.31%&#xff0c;其中 WazirX 因多签钱包私钥泄露&#xff0c;造成约 2.35 亿美元的损失&#xff0c;为 7 月最大安全事件。 最大安全事件-私钥泄漏 7 月 18 日&#xff0c;WazirX 多签钱包私…

Spring Boot集成Resilience4J实现断路器功能

1.什么是Resilience4J&#xff1f; Netflix Hystrix 断路器是 Spring Cloud 中最早就开始支持的一种服务调用容错解决方案&#xff0c;但是目前的 Hystrix 已经处于维护模式了&#xff0c;虽然这并不影响已经上线的项目&#xff0c;并且在短期内&#xff0c;你甚至也可以继续在…

【AD域】搭建AD域服务器

环境 服务器&#xff1a;Windows Server 2016 Standard&#xff0c;版本1607 准备 1、设置主机名 2、配置静态IP地址 3、以本地管理员权限登录服务器 步骤 1、在服务器添加【Active Directory】域服务功能 2、AD域服务器配置

ERP系统提高生产企业库存周转率的抓手

引言 生产企业库存积压&#xff0c;有市场波动的原因&#xff0c;也有内部管理的原因。常见的内部管理原因有&#xff1a; 物料买多了&#xff0c;长期积压在仓库 缺料&#xff0c;生产不能及时完工&#xff0c;在制品积压 物料买早了&#xff0c;在仓库呆滞时间过长 在ERP…

RIP路由协议之网络工程师软考中级

几种常见的路由协议 路由协议名称路由协议分类&#xff08;工作原理&#xff09;协议分类&#xff08;工作区域&#xff09;路由算法RIP距离矢量IGPBellman-FordOSPF-ISIS链路状态IGPDijkstraBGP路径向量EGP/ IGP称为内部网关协议&#xff08;I人&#xff0c;内向&#xff09…

瑞芯微Android设备指定应用开启性能模式

本文档主要针对特定应用&#xff08;如 安兔兔&#xff09;如何进行加速及性能的提升做相关说明。 快速开启方法 开启与关闭 在 device/rockchip/rk3xxx/下配置文件:package_performance.xml&#xff0c;在其中的节点中加入需要使用性能模式的包名&#xff1a;&#xff08;…

Java零基础之多线程篇:如何保证线程安全?

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

使用swiftui自定义圆形进度条实现loading

实现的代码如下&#xff1a; // // LoadingView.swift // SwiftBook // // Created by Song on 2024/8/2. //import SwiftUIstruct LoadingView: View {State var process 0.5var body: some View {VStack(spacing: 20) {ZStack {Circle().stroke(.gray.opacity(0.3), lin…

【QGroundControl二次开发】八. QT实现播放gstreamer视频

上篇写到如何搭建gstreamer在Windows和linux下的环境&#xff0c;以及新建VS工程解码视频流。gstreamer 配置解析编解码 本篇主要讲述c源码移植到QT工程。 一. QT工程配置 gstreamer环境参考上面链接。 在项目的.pro文件中加入如下代码。&#xff08;以linux项目为例&#xff…

【Python 逆向滑块】(实战四)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

逆向日期&#xff1a;2024.08.02 使用工具&#xff1a;python、Node.js 本章知识&#xff1a;逆向网易易盾【data】参数里的【d】【p】【f】【ext】参数 文章难度&#xff1a;中等&#xff08;没耐心的请离开&#xff09; 文章全程已做去敏处理&#xff01;&#xff01;&#x…

物理学是研究‘’物质一般的运动规律‘’和‘’物质基本结构‘’的自然科学

物理学是一门研究物质最一般的运动规律和物质基本结构的自然科学学科。作为自然科学的带头学科&#xff0c;物理学研究大至宇宙&#xff0c;小至基本粒子等一切物质最基本的运动形式和规律&#xff0c;因此成为其他各自然科学学科的研究基础。 以下是对物理学的详细解析&#x…

儿童安全门和围栏美国CPC认证ASTM F1004测试16CFR1239测试

什么是儿童安全门和围栏&#xff1f; ASTM F1004-22将“伸缩门”定义为“旨在安装在门口等开口处的障碍物&#xff0c;以防止儿童通过&#xff0c;但可以由能够操作锁定装置的老年人拆除”(第3.1.7节)。 ASTM F1004-22将“可扩展围栏”定义为“旨在完全包围幼儿可能被限制在其…

数据结构与算法--栈

文章目录 知识回顾顺序存储结构的优缺点链式存储结构的优缺点 数据结构的三个方面栈的定义与特点栈的基本运算栈的存储结构与实现顺序栈入栈操作出栈操作 链栈入栈操作入栈操作 栈的应用数制转换表达式求值中缀表达式向后缀表达式的转换后缀表达式的求值过程 总结 知识回顾 顺…