【Java】力扣 - 刷题笔记 - 1365

【Java】力扣 - 刷题笔记 - 1365

【Java】力扣 - 刷题笔记 - 1365

每日一道题,提升一点点

题目介绍

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

换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != inums[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

解题思路

  • 1.题目分析
    最后我们输出结果为 res 数组,对于 num[i] 我们只要找出比 nums[i] 值小的数量就是 res[i] 的值
class Solution {
	public int[] smallerNumbersThanCurrent(int[] nums) {
		// 初始化目标数组,长度等于 nums 数组的长度
		int[] res = new int[nums.length];
		for (int i = 0; i < nums.length; i++) {
			// res[i] 的值等于比 nums[i] 值小的数量
			res[i] = getSmallerNums(nums,nums[i]);
		}
		return res;
	}
	// 写一个方法:获取 nums 数组中比 value 值小的数量并返回
	public int getSmallerNums(int[] nums, int value) {
		// 初始化比 value 小的数量为 0
		int smaller = 0;
		for (int i = 0; i < nums.length; i++){
			// nums[i] 小于 value 时,数量++
			if (nums[i] < value) {
				smaller++;
			}
		}
		return smaller;
	}
}
  • 2.提交结果
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35132089/article/details/108088282