力扣 有多少小于当前数字的数字
力扣 有多少小于当前数字的数字
题目描述
给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。
换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。
以数组形式返回答案。
示例 1:
输入:nums = [8,1,2,2,3]
输出:[4,0,1,1,3]
解释:
对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。
对于 nums[1]=1 不存在比它小的数字。
对于 nums[2]=2 存在一个比它小的数字:(1)。
对于 nums[3]=2 存在一个比它小的数字:(1)。
对于 nums[4]=3 存在三个比它小的数字:(1,2 和 2)。
示例 2:
输入:nums = [6,5,4,8]
输出:[2,1,0,3]
示例 3:
输入:nums = [7,7,7,7]
输出:[0,0,0,0]
提示:
2 <= nums.length <= 500
0 <= nums[i] <= 100
思路分析
方法一:暴力搜索
AC代码:
class Solution {public:vector<int> smallerNumbersThanCurrent(vector<int>& nums) {vector<int>num(nums.size());for(int i=0;i<nums.size();i++){for(int j=0;j<nums.size();j++){if(nums[i]>nums[j]) num[i]++;}}return num;}
};
方法二:快速排序
将数组排序并用pair记录每个数在原数组中的位置,对于排序后的数组中的每一个数,只要找到其左侧第一个小于它的数就能知道数组中小于该数的数量
AC代码:
class Solution {public:vector<int> smallerNumbersThanCurrent(vector<int>& nums) {vector<pair<int, int>> data;int n = nums.size();for (int i = 0; i < n; i++) {data.emplace_back(nums[i], i);}sort(data.begin(), data.end());vector<int> ret(n, 0);int prev = -1;for (int i = 0; i < n; i++) {if (prev == -1 || data[i].first != data[i - 1].first) {prev = i;}ret[data[i].second] = prev;}return ret;}
};
力扣 有多少小于当前数字的数字相关推荐
- 力扣 求根到叶子节点数字之和
力扣 求根到叶子节点数字之和 题目描述 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 ...
- 力扣每日一题 到达终点数字
Day 37 Date: November 4, 2022 8:39 PM LinkedIn: https://leetcode.cn/problems/reach-a-number/descript ...
- 力扣 2042检查句子中地数字是否递增
题目 句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格.每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文 ...
- 力扣 每日一题 丢失的数字
文章目录 题目 思路 AC代码 后记 题目 丢失的数字 思路 第一个思路是利用数学公式来对于nums做差得出答案: 第二个思路我觉得比较经典就是利用异或运算.因为异或有两个独特的性质: 0与任何数异或 ...
- leetcode(力扣)738. 单调递增的数字||714. 买卖股票的最佳时机含手续费
738. 单调递增的数字 class Solution { public:int monotoneIncreasingDigits(int n) {string strNum=to_string(n) ...
- 力扣编程题-解法汇总
一.力扣链接: 题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台 备注:以后每个工作日从前往后刷一道题,然后再加一道每日新题.每天两道题. 二.模版: 标题: 力扣解法汇总5-正则表达 ...
- LeetCode简单题之有多少小于当前数字的数字
题目 给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目. 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i ...
- C++算法学习(力扣:402. 移掉K位数字)
给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : 输入: nu ...
- 力扣刷题day32|738单调递增的数字、714买卖股票的最佳时机含手续费、968监控二叉树
文章目录 738. 单调递增的数字 思路 难点:遍历顺序 难点:设置flag 714. 买卖股票的最佳时机含手续费 贪心思路 难点 968. 监控二叉树 思路 难点:如何隔两个节点放一个摄像头 738 ...
最新文章
- 微软职位内部推荐-Senior Software Engineer-Eco
- SQLServer 扫盲
- iOS组件化-带你一步步实现项目的组件化
- Unity3D学习笔记之八为场景添加细节(一)
- 浅谈 Linux API的交互式运行环境ipython是最好的REPL
- ZooKeeper管理员指南
- cp210x驱动怎么安装_电脑声卡驱动怎么安装,教你三步搞定声卡驱动
- HTML (3)---HTML编辑器
- TurboMail邮件服务器 V4.2.0 正式发布
- centos 6.5卸载Mysql
- 北京国家开放大学计算机学院,李继先
- python网络编程讲解_详解Python Socket网络编程
- 浏览器打印设置横向打印_震旦打印机如何设置认证打印
- 《普林斯顿微积分读本》笔记-第3章极限导论
- hp android 计算器,惠普图形计算器(HP Prime Graphing Calculator)
- laravel应用密钥
- 【物联网专题】2.1_设备管理平台_什么是产品?
- css背景图片全屏_使用CSS3的全屏背景图片幻灯片
- OSChina 周三乱弹 —— 迷宫里乱开宝箱的后果
- IDEA中运行maven多模块项目,提示程序包xxxx不存在