元素守恒计算方法_leetcode免费吗

元素守恒计算方法_leetcode免费吗给定一个整数数组 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/168660.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月8日 下午6:46
下一篇 2022年8月8日 下午6:46


相关推荐

  • LeetCode18:4Sum

    LeetCode18:4Sum

    2022年1月17日
    42
  • java 代码生成器 generator

    java 代码生成器 generator文章目录写在前面1、mybatis-generator1.1、第一种:利用maven插件实现2、mybatis-plus-generator写在前面我们在java开发中,经常要建一些常用的包、类,他们都千篇一律,没什么技术含量,于是我们想到了用代码生成器去自动生成他们,例如mapper、dao、实体类。1、mybatis-generatormybatis-generator的运行过程:首先连接数据库,然后从数据库的表中读取字段,生成对应文件。1.1、第一种:利用maven插件实现整个过程你只需要

    2022年6月10日
    35
  • bmp 文件详解

    bmp 文件详解转自网络 BMP 文件存储结构的格式可以在 Windows 中的 WINGDI h 文件中找到定义 BMP 文件总体上由 4 部分组成 分别是位图文件头 位图信息头 调色板和图像数据 如表 5 1 所示 表 5 1BMP 文件的组成结构位图文件头 bitmap fileheader 位图信息头 bitmap informationh 彩色表 调色板 colortable 位图数据 bitmap data 下面来详细看一下每个组成部分的细节 1

    2026年3月19日
    2
  • Claude Code咋用?手把手教你对接DeepSeek-R1和Kimi K2!

    Claude Code咋用?手把手教你对接DeepSeek-R1和Kimi K2!

    2026年3月15日
    2
  • C实现在企业微信内创建微信群发送群消息

    C实现在企业微信内创建微信群发送群消息在公司的日常的工作中 涉及到一些生产 库存 销售等关键数据的汇总指标数据需要及时推送到公司指定人员的企业微信群中 方便相关负责人了解最新的情况并作出处理 在企业微信群中实现 发送文本内容且 相关人员 发送具有标题且重点信息标注和连接内容 可以直接发送图片 可以发送图文内容

    2026年3月16日
    1
  • Extjs弹窗控件——Ext.MessageBox

    Extjs弹窗控件——Ext.MessageBox首先,浏览器自带的弹窗有alert、confirm、prompt等。js弹窗的3种方式:alert、confirm、prompt鉴于其外观丑陋以及配置不方便,我们常采用Extjs自带的弹窗控件。//

    2022年7月3日
    25

发表回复

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

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