1365. 有多少小于当前数字的数字

华为OD2023(A卷)基础题27【找数字、找等值元素】 给一个二维数组nums,对于每一个元素num[i],找出距离最近的且值相等的元素,输出横纵坐标差值的绝对值之和,如果没有等值元素,则输出 -1。给一个二维数组nums,对于每一个元素num[i],找出距离最近的且值相等的元素,输出横纵坐标差值的绝对值之和,如果没有等值元素,则输出 -1。输入第一行为二维数组的行。输入第二行为二维数组的列。数组形式返回所有坐标值。输入第一行为二维数组的行。输入第二行为二维数组的列。数组形式返回所有坐标值。输入的数字以空格隔开。输入的数字以空格隔开。 阅读详情
/**
 * 1365. 有多少小于当前数字的数字
 * @author wsq
 * @date 2020/10/26
	给你一个数组 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)。
	
	链接:https://leetcode-cn.com/problems/how-many-numbers-are-smaller-than-the-current-number
 */
package com.wsq.leetcode;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class SmallerNumbersThanCurrent {
	/**
	 *	利用hash表和快速排序配合使用
	 * @param nums
	 * @return
	 */
	public int[] smallerNumbersThanCurrent(int[] nums) {
        Map<Integer, Integer> countMap = new HashMap();
        int n = nums.length;
        int[] tmpArr = new int[n];
        System.arraycopy(nums, 0, tmpArr, 0, n);
        Arrays.sort(tmpArr);
        for(int i = 0; i < n; i++){
            if(i == 0){
                countMap.put(tmpArr[i], 0);
                continue;
            }
            int j = i;
            while(j-1 >= 0 && tmpArr[j-1] == tmpArr[i]){
                j--;
            }
            if(countMap.get(tmpArr[i]) == null){
                countMap.put(tmpArr[i], j);
            }
        }
        int[] ans = new int[n];
        for(int i = 0; i < n; i++){
            ans[i] = countMap.get(nums[i]);
        }
        return ans;
    }
	/**
	 *	由于题目中学到数字的范围是0,100,因此统计原数组中每个数字对应的个数,
	 *	然后将前者的个数加给后面的数,就是在原数组中小于该元素的个数
	 * @param nums
	 * @return
	 */
	public int[] smallerNumbersThanCurrent1(int[] nums) {
        int[] cnt = new int[101];
        int n = nums.length;
        for (int i = 0; i < n; i++) {
            cnt[nums[i]]++;
        }
        for (int i = 1; i <= 100; i++) {
            cnt[i] += cnt[i - 1];
        }
        int[] ret = new int[n];
        for (int i = 0; i < n; i++) {
            ret[i] = nums[i] == 0 ? 0 : cnt[nums[i] - 1];
        }
        return ret;
    }
}

【华为OD机试真题 java、python】找等值元素(100%通过+复盘思路) 给一个二维数组nums,对于每一个元素num[i],找出距离最近的且值相等的元素,输出横纵坐标差值的绝对值之和,如果没有等值元素,则输出-1。 阅读详情

相关推荐

一份针对零基础学习AI Agent详细学习计划

以下是针对零基础学习者制定的AI Agent详细学习计划,结合最新行业动态和实用资源推荐,帮助你从入门到进阶系统掌握核心技能

sexy19910923的博客 1906

leetCode-1365有多少小于当前数字的数字

有多少小于当前数字的数字 给你一个数组 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 不存在比它小的数字。.

城溪羡鱼的博客 239

开源代码分享(29)-基于拉丁超立方抽样的风光场景生成和削减

作为分层抽样方法的一 种,拉丁超立方抽样具有良好的抽样精度和效率[14]。本文使用多场景方法来描述可再生能源(风电、光伏)的不确定性。以风电功率为例,首先假定风电功率服从正态分布 N(μ, δ 2 ),μ 为预测值的期望值,δ 为其波动的百分比。接着,采用拉丁超立方抽样[21]生成大量服从概率分布约束的风电出力场景,并采用考虑 Kantorovich 距离[22]的场景削减技术处理该场景,进行场景削减。最后,导出具有相应概率的削减之后的场景。

配电网和matlab的博客 924

[LeetCode]给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。

给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。 以数组形式返回答案。 这个很简单: class Solution: def smallerNumbersThanCurrent(self, nums: List[int]) -> List[int]: num_small = [0 f

MrCharles在优快云 2040

三维Copula建模进阶:从对称、嵌套到Pair-Copula(C-Vine/D-Vine)到底怎么选?

本文深入探讨三维Copula建模的进阶策略,包括对称Archimedean、嵌套结构和Vine Copula(C-Vine/D-Vine)的选择方法。通过对比数学特性、计算复杂度和实际应用案例,提供了一套针对金融风险分析等场景的决策框架,帮助分析师根据数据特征选择最优模型。

weixin_27038701的博客 436

python爬取《你好, 李焕英》豆瓣评论数据

# 导入工具包 import requests from bs4 import BeautifulSoup import time import pandas as pd import numpy as np # 请求头 headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'} # =

python技巧分享 3457

剑指offer刷题记—第4题_二维数组中的查找

** * @program: suanfa * @description: 二维数组中查找,给定一个二维数组,其每一行从左到右递增排序, * 从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中 * @author: zi jian * @create: 2019-10-23 16:37 */ public class FindNumber_4 { //思路是确定一...

pioneer的博客 680

ANSYS FLUENT 超临界流体物性分段线性插值数据批量导入

使用fluent自带数据库进行超临界流体仿真时,时不时会出现计算错误,考虑是数据库不稳定引起,而使用自定义的分段线性插值物性则不会出现上述情况。 超临界流体在拟临界点附近物性变化剧烈,需要使用较多的数据点才能更准确的表述物性,如果是在对话框中修改,一次只能输入一个点,人工输入极其费时费力且容易失误。 数据批量导入方法为: 1.以CO2为例,使用REFREPRO等物性查询软件或数据资料,获得所需物性数据表。 2.在FLUENT材料Materia...

wind_rider的博客 1万+

Leetcode 1365. 有多少小于当前数字的数字

1365. 有多少小于当前数字的数字 一开始想得可复杂了,复制一下整个数组,给复制的数组排序,然后再把结果存到一个哈希表里,再把哈希表的数据映射到答案数组...看了题解学了一下标准的计数法 解题思路 考虑到对于所有的数字,都小于100,故定义一个cnt数组存储这些数组出现的次数,其大小为101; 从cnt[1]开始,对cnt数组进行累加操作,得到对于每个数字 i (对应nums内的元素),其前面数字出现的次数; 将结果写入答案数组ans[ ],由于此时cnt[ ]数组内每个元素存储的是从0到 i

浪矢五金店 201

【智能车Code review】—曲率计算、最小二乘法拟合

【1】曲率计算函数 选三个点计算曲率 float process_curvity(byte x1, byte y1, byte x2, byte y2, byte x3, byte y3) { float K; int S_of_ABC = ((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) / 2; //面积的符号表示方向 byte q1 = (byte)((x2 - x1) * (x2 - x1) + (y2 - y1) *

hanhan的博客 1万+

C#上位机+TensorFlow Lite 轻量化AI模型部署实战(工业级完整版,低算力工控机首选)

工业自动化轻量化AI部署指南:C# + TensorFlow Lite实战 摘要:本文针对工业自动化领域机器视觉部署的痛点,提出基于C#和TensorFlow Lite(TFLite)的轻量化解决方案。该方案完美适配低算力工控环境(J1900/2G内存),具有以下核心优势:1)极致轻量化,模型体积仅KB-MB级;2)CPU深度优化,单帧推理≤15ms;3)零环境依赖,纯C#部署;4)工业级稳定性,7×24小时运行。教程涵盖从环境搭建、模型转换到C#封装的完整流程,特别提供YOLOv8等工业常用模型的TFLi

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1031

leetcode 1365.有多少小于当前数字的数字(python)

leetcode 1365.有多少小于当前数字的数字(python) 给你一个数组 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)。 对

pureszgd的博客 379

Python李峋同款跳动的爱心(完整代码)

Python语言实现李峋同款可写字版跳动的爱心的完整代码。

AIGC 4万+

leetcode1365. 有多少小于当前数字的数字

文章目录题目:1365. 有多少小于当前数字的数字基本思想1:暴力基本思想2:排序基本思想3:计数排序 题目:1365. 有多少小于当前数字的数字 给你一个数组 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] 解释:

yyf_blog 306

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LeetCode刷题之1365. 有多少小于当前数字的数字

LeetCode刷题之1365. 有多少小于当前数字的数字 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。 以数组形式返回答案。 示例: 示例 1 : 输入:nu

胡萝卜 560

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

力扣第1365题:有多少小于当前数字的数字

力扣1365. 有多少小于当前数字的数字

童一的博客 189

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

leetcode.1365 有多少小于当前数字的数字

leetcode.1365 有多少小于当前数字的数字 题干 给你一个数组 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] 示例 2: 输入:

玛软的垃圾桶 113

Lecode1365. 有多少小于当前数字的数字-20201026

LeeCode1365. 有多少小于当前数字的数字题目描述解题思路方法1代码复杂度方法2代码复杂度方法3代码复杂度 题目描述 给你一个数组 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] 解释: 对于 n

silenceagle的博客 224

LeetCode 每日一题 1365.有多少小于当前数字的数字

10.26 LeetCode 每日一题 1365.有多少小于当前数字的数字 题目分析: 题目其实很简单,无非就是要找出与每一个数小的数的总个数,然后输出。返回的是一个数组,数组中对应下标计算的个数必须与题目的nums数组的下标保持一致! 方法一:暴力法 对于每一个数组中的元素,都遍历一次,依次和其他元素进行比较,然后结果存进一个数组中,最后将数组返回即可。 public int[] smallerNumbersThanCurrent(int[] nums) { if(nums.length

JavaBoy 246

【LeetCode每日一题】[简单]1365. 有多少小于当前数字的数字

【LeetCode每日一题】[简单]1365. 有多少小于当前数字的数字 1365. 有多少小于当前数字的数字 题目来源 算法思想:数组 题目: java代码–暴力 思路: 统计每个数字比它小的个数 class Solution { public int[] smallerNumbersThanCurrent(int[] nums) { int count = 0;//用来计数 int[] res = new int[nums.length];//存放答案 for (int i = 0

qq_39457586的博客 186

leetcode 1365. 有多少小于当前数字的数字(简单)

leetcode 1365. 有多少小于当前数字的数字(简单) 给你一个数组 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)。 对于 nu

weixin_44456155的博客 240

菜鸟刷题LeetCode.1365. 有多少小于当前数字的数字

** LeetCode.1365. 有多少小于当前数字的数字 ** 给你一个数组 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)。

lion_cute的博客 262

从零开始刷LeetCode___1365. 有多少小于当前数字的数字

LeetCode1365. 有多少小于当前数字的数字题目解题思路:利用数组进行两次遍历(Arrays方式)利用进行两次遍历(HashMap方式) 题目 **给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i且 nums[j] < nums[i] 。 以数组形式返回答案.** 输入:nums = [8,1,2,2,3] 输出:[4,0,1,1,3] 解释: 对

qq_42639070的博客 249
上一篇: 55. 跳跃游戏(贪心算法)
下一篇: 837. 新21点(动态规划)
Lazy mode
博客等级 码龄10年 13粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值