【LeetCode每日一题】——462.最小操作次数使数组元素相等 II

news2024/9/22 15:47:46

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【解题思路】
  • 七【题目提示】
  • 八【时间频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 排序

二【题目难度】

  • 中等

三【题目编号】

  • 462.最小操作次数使数组元素相等 II

四【题目描述】

  • 给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最小操作数。
  • 在一次操作中,你可以使数组中的一个元素加 1 或者减 1 。

五【题目示例】

  • 示例 1:

    • 输入:nums = [1,2,3]
    • 输出:2
    • 解释:只需要两次操作(每次操作指南使一个元素加 1 或减 1):[1,2,3] => [2,2,3] => [2,2,2]
  • 示例 2:

    • 输入:nums = [1,10,2,9]
    • 输出:16

六【解题思路】

  • 可以发现当我们取中位数作为基准值时,其他元素都调整为基准值,这时所需要的操作次数最少
  • 所以找到基准值后,只需要计算其他值调整为基准值需要的操作次数,将其累加
  • 最后返回结果即可

七【题目提示】

  • n = = n u m s . l e n g t h n == nums.length n==nums.length
  • 1 < = n u m s . l e n g t h < = 1 0 5 1 <= nums.length <= 10^5 1<=nums.length<=105
  • − 1 0 9 < = n u m s [ i ] < = 1 0 9 -10^9 <= nums[i] <= 10^9 109<=nums[i]<=109

八【时间频度】

  • 时间复杂度: O ( n l o g n ) O(nlogn) O(nlogn),其中 n n n为数组的长度
  • 空间复杂度: O ( 1 ) O(1) O(1)

九【代码实现】

  1. Java语言版
package Sort;

import java.util.Arrays;

/**
 * @Author: IronmanJay
 * @Description: 462.最小操作次数使数组元素相等 II
 * @CreateTime: 2022-11-17  09:29
 */
public class p462_MinimumMovesToEqualArrayElementsII {

    public static void main(String[] args) {
        int[] nums = {1, 2, 3};
        int res = minMoves2(nums);
        System.out.println("res = " + res);
    }

    public static int minMoves2(int[] nums) {
        Arrays.sort(nums);
        int len = nums.length;
        int mid = nums[len / 2];
        int res = 0;
        for (int i = 0; i < len; i++) {
            res += Math.abs(nums[i] - mid);
        }
        return res;
    }

}
  1. C语言版
#include<stdio.h>

int compare_p462_MinimumMovesToEqualArrayElementsII(const void *a, const void *b)
{
	return *(int *)a - *(int *)b;
}

int minMoves2(int* nums, int numsSize)
{
	qsort(nums, numsSize, sizeof(int), compare_p462_MinimumMovesToEqualArrayElementsII);
	int mid = nums[numsSize / 2];
	int res = 0;
	for (int i = 0; i < numsSize; i++)
	{
		res += fabs(nums[i] - mid);
	}
	return res;
}

/*主函数省略*/

十【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12732.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022NUSTCTF--web

ezProtocol web基础 POST / HTTP/1.1 Host: 43.143.7.97:28520 Pragma: no-cache Cache-Control: no-cache Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Acc…

Linux信号

目录注意信号概念用kill -l命令可以查看系统定义的信号列表信号处理常见方式概览产生信号1. 通过终端按键产生信号Core Dump2. 调用系统函数向进程发信号3. 由软件条件产生信号4. 硬件异常产生信号信号捕捉模拟一下野指针异常总结阻塞信号1. 信号其他相关常见概念2. 在内核中的…

Jest单测实践篇

快照测试 快照测试在你要确保你的UI没有发生改变的时候非常有用。jest的快照测试为文本测试&#xff0c;第一次执行时存储本次的快照&#xff0c;然后在之后的测试过程中进行文本比对。 toMatchSnapshot() 方法 import React from react; import Link from ../Link.react; i…

Python编程 列表的常用方法

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.字符串(str) 1.字符串常见操作(熟悉) 2.L.append(object) 3.L.exten…

前端开发环境搭建

1.安装git 去官网下载git安装包https://gitforwindows.org/ 2.配置ssh公钥这样再操作git 的时候就不用输入密码了 1、鼠标右键&#xff0c;点击 ‘git bash here’ 2、配置一下name 、eamil git config --global user.name 用户名 git config --global user.email 邮箱 3…

Spring 6面向切面编程aop详解

面向切面编程十五、面向切面编程AOP15.1 AOP介绍15.2 AOP的七大术语15.3 切点表达式15.4 使用Spring的AOP15.4.1 准备工作15.4.2 基于AspectJ的AOP注解式开发实现步骤通知类型切面的先后顺序优化使用切点表达式全注解式开发AOP15.4.3 基于XML配置方式的AOP&#xff08;了解&…

Windows 10下部署Java环境——jdk1.8.0_301版本

文章目录JDK安装JDK的环境配置验证JDK配置成功JDK安装 JDK1.8.0_301版本资源&#xff1a;https://download.csdn.net/download/qq_43408367/87061076?spm1001.2014.3001.5503 安装步骤参考&#xff1a;Windows 10下部署Java环境——JDK 11.0.2版本 JDK的环境配置 “我的电…

配置静态ip,主机名,centos安装jdk,hadoop等

切换到root用户操作 su root配置ip地址和ip地址的配置&#xff0c;网关&#xff0c;域名解析 vim /etc/sysconfig/network-scripts/ifcfg-ens33linux⾥的bootproto的none,static,dhcp有什么区别这个是⽹络配置参数&#xff1a; BOOTPROTOstatic 静态IP BOOTPROTOdhcp 动态IP…

消息队列 RocketMQ 5.0:从消息服务到云原生事件流平台

前言 回顾 RocketMQ 的发展历程&#xff0c;至今已十年有余。2022 年 RocketMQ 5.0 正式发布&#xff0c;全面迈进云原生时代。 11 月 5 日&#xff0c;2022 杭州 云栖大会上&#xff0c;阿里云智能高级产品专家杨秋弟在云原生峰会上发表主题演讲&#xff0c;发布消息队列 R…

【蓝桥杯冲击国赛计划第6天】字典

文章目录1. 字典1.1 概念1.2 字典的定义1.3 字典的添加1.4 字典的修改1.5 字典的删除1.6 字典的访问1.7 字典的排序2. 实例「弗里的语言」题目描述输入描述输出描述输入输出样例示例1示例2运行限制2.1 简单分析2.2 初始化2.3 get 访问2.4 补充2.5 完整代码3. 实例「快递分拣」题…

关于编辑器QScintilla(Scintilla)词法分析器取消非活动代码灰色显示

入门&#xff0c;首先看我这两篇博客&#xff1a;关于QScintilla库的入门大全https://biao2488890051.blog.csdn.net/article/details/126798996?spm1001.2014.3001.5502 关于编辑器QScintilla&#xff08;Scintilla&#xff09;词法分析器工作原理的分析&#xff08;实现注释…

MATLAB算法实战应用案例精讲-【智能优化算法】黏菌算法(SMA)(附MATLAB实现代码)

前言 黏菌觅食算法(Slime Mould Algorithm,SMA)由Li及Mirjalili教授等人于2020年提出,主要模拟了黏菌的扩散及觅食行为,利用自适应权重模拟了基于生物振荡器的“黏菌传播波”产生正反馈和负反馈的过程,形成具有良好的探索能力和开发倾向的食物最优连接路径,因此具有较好的…

JavaSE之反射

目录Class类反射的概念反射的好处反射的应用场景三种获取Class对象的方式Class类中的方法Class中获取构造器的方法获取成员方法对象获取成员变量反射案例最后Class类 Class类创建的对象我们称为Class对象/类对象/字节码对象 Class对象会保存类中的信息(构造方法, 成员方法, 成…

STM32CubeMX新建工程并点亮一个LED

可提前看&#xff1a;STM32CubeMX环境安装&#xff08;保姆级&#xff09; 目录 进入STM32CubeMX界面 双击软件&#xff0c;可能会出现的弹窗 更改固件路径 新建工程 进入配置环境 以一个点灯程序为例 GPIO配置 输出电平设置 输出模式 上下拉 输出速度 ​编辑 U…

【笑小枫的SpringBoot系列】【十六】SpringBoot生成PDF

关于笑小枫&#x1f495; Hello&#xff0c;我是笑小枫&#xff0c;欢迎来到我的世界&#xff0c;喜欢的朋友关注一下我呦&#xff0c;大伙的支持&#xff0c;就是我坚持写下去的动力。 笑小枫个人博客&#xff1a;https://www.xiaoxiaofeng.com 本文源码&#xff1a;https://g…

DVWA之SQL注入(盲注)

文章目录方法一&#xff1a;基于布尔盲注1.判断是否存在注入&#xff0c;注入类型2.猜数据库名3.猜解数据库中的表名4.猜列名5.猜表中的字段值方法二&#xff1a;基于时间盲注1.判断是否存在注入&#xff0c;注入是字符型还是数字型2.猜解当前数据库名3.猜解数据库中的表名4.猜…

ASPNetZero 11.4 Release Angular + MVC + Crack

Asp. NET 带有现代UI和稳定的结构&#xff0c;是新的网页应用的起点。它会提供预建和工作页以及很强的基本构造。 基础解决方案 你的下一个网络应用程序 ASP.NET Zero 是具有现代 UI 和 SOLID 架构以及完整源代码的新 Web 应用程序的起点。 ASP.NET Zero的好处 ASP.NET Zero 通…

化合物应用-动物给药方式

给药方式 针对实验动物的给药方式有很多种&#xff0c;总体可分为局部给药和系统给药。系统给药又可分为肠外给药和肠内给药。 1.1 肠内给药&#xff08;Enteral administration&#xff09; 口服&#xff08;per os&#xff0c;p.o&#xff09;给药由于具有经济、方便、安全…

虚拟形象sdk哪个好?可以快速制作专属元宇宙形象

元宇宙的火爆&#xff0c;催生了很多提供元宇宙基座的服务商&#xff0c;目前市面上提供虚拟形象SDK的服务商不少于20家&#xff0c;这里小编给大家推荐ZEGO即构科技的Avatar虚拟形象SDK。 即构Avatar虚拟形象SDK概述 即构Avatar支持自定义管理人物的虚拟形象&#xff0c;通过默…

【虹科新品】 HK-MR430330绝对式光纤编码器(上)

虹科MR430&330系列绝对式光纤编码器是用于确定轴位置的角度计&#xff0c;均为纯光学无源设计。HK-MR330系列适用于间隔距离较大的编码器和控制器&#xff0c;HK-MR430 系列适用于由于体积小而提供小空间的系统。与增量式旋转编码器相比&#xff0c;测量值在开启后立即可用…