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

元素守恒计算方法_元素个数怎么算给定一个整数数组 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;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • android之OkHttpClient通信「建议收藏」

    android之OkHttpClient通信OkHttpClient用法1:自定义缓存OkHttpClienthttpclient=newOkHttpClient.Builder().cache(newCache(newFile("cacheDirectory"),newLong(10*1024*1024))).build();用法2:当…

  • 7、多协议配置以及dubbo协议详解

    7、多协议配置以及dubbo协议详解提供者指定协议:<dubbo:protocolname=”dubbo”port=”20880″/><dubbo:protocolname=”rmi”port=”1099″/><!–使用dubbo协议暴露服务–><dubbo:serviceinterface=”com.alibaba.hello.api.HelloService”version=”1.0.0″ref=”helloService”protoc

  • QT 读取csv文件「建议收藏」

    QT 读取csv文件「建议收藏」最近项目中提出的需求是从excel表格中导入数据,查阅了很多资料之后,发现直接操作xls格式文件并不容易,之后找到了一个比较好的解决办法,那就是把xls文件另存为csv文件,然后在程序中进行操作。首先大致说明一下这两种格式的区别:      xls文件是Excel电子表格的文件格式,而csv是一种比较通用的文件格式,xls文件只能用Excel才能打开,而csv文件可以用Excel、记事本

  • 赵雅智_BroadcastReceiver

    赵雅智_BroadcastReceiver

  • linux 搜狗输入法包名,搜狗输入法[通俗易懂]

    linux 搜狗输入法包名,搜狗输入法[通俗易懂]应用介绍搜狗输入法,拥有高效优质中文词库,输入更加准确,智能。搜狗智能旺仔带你用AI表达,斗图,妙语,输入更加有趣。******特色功能******【搜狗专属高效词库】搜狗多年积累,百万级中文系统词库,输入首选更准确【优选云词库】新词汇、热门网络语、热门流行语、饭圈新密语实时更新,跟上时髦的你【智能长句输入】只需输入几个字母,就能猜中你要说的话,准确补全,省时省力【AI智能汪仔】AI输入用搜狗,智…

  • Android N特性解析

    Android N特性解析作者:Redyan,腾讯移动客户端开发工程师商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。原文链接:http://wetest.qq.com/lab/view/288.html

发表回复

您的电子邮箱地址不会被公开。

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