元素守恒计算方法_元素个数怎么算

元素守恒计算方法_元素个数怎么算给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。示例:输入:nums = [5,2,6,1]输出:[2,1,1,0] 解释:5 的右侧有 2 个更小的元素 (2 和 1)2 的右侧仅有 1 个更小的元素 (1)6 的右侧有 1 个更小的元素 (1)1 的右侧有 0 个更小的元素提示:0 <= nums.length <= 10^5-10^4

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。

示例:

输入:nums = [5,2,6,1]
输出:[2,1,1,0] 
解释:
5 的右侧有 2 个更小的元素 (2 和 1)
2 的右侧仅有 1 个更小的元素 (1)
6 的右侧有 1 个更小的元素 (1)
1 的右侧有 0 个更小的元素

提示:

0 <= nums.length <= 10^5
-10^4 <= nums[i] <= 10^4

题解
树状数组求逆序数

class Solution { 
   
public:
    static const int N = 1e5 + 10;
    int lowbit(int x){ 
   
        return (x & (-x));
    }
    int query(int x){ 
   
        int sum = 0;
        while(x > 0){ 
   
            sum += tree[x];
            x -= lowbit(x);
        }
        return sum;
    }
    void add(int x,int y){ 
   
        while(x < N){ 
   
            tree[x] += y;
            x += lowbit(x);
        }
    }
    int tree[N] = { 
   0};

    vector<int> countSmaller(vector<int>& nums) { 
   
        vector<int>res;
        int base = 1e4 + 1;
        for(int i = nums.size() - 1;i >= 0;i --){ 
   
            nums[i] = nums[i] + base;
            res.push_back(query(nums[i] - 1));
            add(nums[i],1);
        }
        reverse(res.begin(),res.end());
        return res;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168844.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月9日 上午10:36
下一篇 2022年8月9日 上午10:46


相关推荐

  • R语言subset函数

    R语言subset函数1 subset 函数 从某一个数据框中选择出符合某条件的数据或是相关的列 1 单条件查询 df lt data frame Age c 22 24 25 26 Gender c Girl Girl Boy Boy City c Shanghai Beijing Guangzhou Nanjing

    2026年3月18日
    1
  • js回调函数例子_c回调函数简单例子

    js回调函数例子_c回调函数简单例子回调函数每一个异步任务返回一个Promise对象,该对象有一个then方法,允许指定回调函数

    2025年6月15日
    4
  • vagrant up 时提示错误 cound not open file

    vagrant up 时提示错误 cound not open file

    2021年10月28日
    44
  • windows中在 pycharm中安装pytorch

    windows中在 pycharm中安装pytorchwindows中在pycharm中安装pytorch打开pycharm打开file————settings————ProjectInterpreter————点击+号然后点击managerepositories输入以下几个常用的地址最后返回直接搜索pytorch点击Installpackage直接下载即可,可能下载的比较慢。…

    2022年8月29日
    5
  • SqlSessionFactory配置

    SqlSessionFactory配置SqlSessionFactory配置<transactionManagertype=”jdbc”>//typejdbc依赖jdbc实现事务控制manage本身对事务不做任何控制,交给外部容器//后端数据库源<dataSourcetype=”POOLDE”> <propertyname=”driver”value=””/> &…

    2022年6月5日
    197
  • DHCP协议浅析

    DHCP协议浅析定义:动态主机配置协议,主要在一些大型局域网络环境中,集中管理和分配IP地址,提升地址的使用效率。DHCP协议采用CLIENT-SERVER方式实现,而且DHCP协议是基于UDP层之上的应用,DHCPCLIENT将采用端口号68,DHCPSERVER采用端口号67进行交互。DHCP的三种分配IP机制:自动分配方式:DHCP服务器为主机指定一个永久性的IP地址。客户端一旦第一次成功租用IP过后,后面即可永久性使用次IP地址。 动态分配方式:DHCP服务器为主机指定一个具有时间期限的IP地址…

    2022年5月10日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号