Leetcode 1051. Height Checker, Java解法

基于粒子群优化的PID控制在药液流量控制系统中的应用 本文提出了一种基于粒子群优化(PSO)的PID控制算法,用于药液流量控制系统。系统采用C37控制器和Codesys 2.3编程环境实现,通过传感器实时监测流量、压力和车速,并控制水泵占空比和电动球阀开度来精确调节药液流量。硬件配置包括FT-2000流量传感器、PT-3000压力传感器和MV-500电动球阀等。控制算法将PSO与PID结合,使用ITAE指标优化PID参数,在Codesys中实现了包含PSO优化循环、PID控制等功能的程序模块。该系统通过分层控制策略和智能优化算法,提高了药液流量控制的精度和响应 阅读详情

Students are asked to stand in non-decreasing order of heights for an annual photo.

Return the minimum number of students not standing in the right positions.  (This is the number of students that must move in order for all students to be standing in non-decreasing order of height.)

Example 1:

Input: [1,1,4,2,1,3]
Output: 3
Explanation: 
Students with heights 4, 3 and the last 1 are not standing in the right positions.

Note:

  1. 1 <= heights.length <= 100
  2. 1 <= heights[i] <= 100

Approach #1 我的解法,Arrays.sort(), Arrays.copyOf()

class Solution {
    public int heightChecker(int[] heights) {
        
        int[] unsorted = Arrays.copyOf(heights,heights.length);
        int num = 0;
        Arrays.sort(heights);
        for(int i=0;i<heights.length;i++){
            if (unsorted[i]!=heights[i])
                num+=1;
        }
        return num;
    }
}

分析

时间复杂度,O(nlog(n))

空间复杂度,O(n)

Approach #2 Counting Sort

class Solution {
    public int heightChecker(int[] heights) {
        int[] heightToFreq = new int[101];
        
        for (int height : heights) {
            heightToFreq[height]++;   //calculate the frequency of each height.
        }
        
        int result = 0;
        int curHeight = 0;
        
        for (int i = 0; i < heights.length; i++) {
            while (heightToFreq[curHeight] == 0) {    //curHeight增加到剩余的最低身高
                curHeight++;
            }
            
            if (curHeight != heights[i]) {            //如果队伍是完全排序的,curHeight应该
                result++;                             //等于此时的身高
            }
            heightToFreq[curHeight]--;    
        }
        
        return result;
    }
}

分析:

计数排序

它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。 [1-2]  当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(n*log(n))的时候其效率反而不如基于比较的排序(基于比较的排序的时间复杂度在理论上的下限是O(n*log(n)), 如归并排序,堆排序)。

应用场景: 数据重复出现次数大 数据紧凑。

public class CountSort {
    public static void countSort(int[] arr) {
        if (arr == null || arr.length == 0)
            return;

        int max = max(arr); //寻找数组中最大值

        int[] count = new int[max + 1]; //建立临时数组, 长度为max+1
        Arrays.fill(count, 0);  //使用0填充数组中的元素

        //使用待排序数组的元素作为临时数组的下标,并且统计每个元素的个数
        for (int i = 0; i < arr.length; i++) {
            count[arr[i]] = count[arr[i]] + 1; 
        }

        
        int arrIndex = 0;
        for (int i = 0; i <= max; i++) {    //从0到max挨个遍历
            //遍历临时数组某下标对应的数组元素值,数组元素值代表下标值出现了几次,依次添加到目标数组
            for (int j = 0; j < count[i]; j++) {    
                arr[arrIndex++] = i; 
            }
        }
    }
    
    // 寻找数组中最大值的方法
    public static int max(int[] arr) {
        int max = Integer.MIN_VALUE;
        for (int ele : arr) {
            if (ele > max)
                max = ele;
        }

        return max;
    }
}

 

【JCR一区级】鱼鹰算法OOA-CNN-LSTM-Attention故障诊断分类预测【含Matlab源码 5711期】 鱼鹰算法OOA-CNN-LSTM-Attention故障诊断分类预测 完整代码和数据,方可运行;数据可直接替换,适合小白!可提供运行操作视频! 阅读详情

相关推荐

团结引擎+OpenHarmony 2实战篇:从零构建鸿蒙应用开发环境

本文详细介绍了如何从零开始构建鸿蒙应用开发环境,重点讲解了团结引擎与OpenHarmony 2的实战配置步骤。内容包括DevEco Studio安装、OpenHarmony SDK配置、团结引擎集成及项目创建等关键环节,帮助开发者快速搭建高效的开发环境,提升鸿蒙应用开发效率。

weixin_29294395的博客 264

Note (Code 1051): Unknown table 执行后提示 warning

奇怪的问题: 如果脚本里有这样的语句,则会报错,但是注释了所有的DROP后,就不会报错了。 DROP DATABASE IF EXISTS `zstest_us_partner`; DROP TABLE IF EXISTS `APPLICATION`; Note (Code 1008): Can't drop database 'us_partner'; dat...

weixin_34104341的博客 2321

Mellanox CX7网卡搭配400G光模块实战:从选型到部署的完整指南

本文详细解析了Mellanox CX7网卡与400G光模块的选型策略与部署实践,涵盖硬件对比、兼容性验证及性能调优。重点介绍了OSFP光模块的选择要点和常见问题排查方法,帮助用户构建高性能网络基础设施,适用于AI训练、金融交易等场景。

efc1234567的博客 1290

jQuery中实现不定高度height属性过渡为auto的animate动画

 jQuery中想要用animate方法将元素的height属性从其它值过渡到auto值,首先想到的就是JavaScript代码复制$(this).animate({height:'auto'}, 300);但是并不起作用。这时需要换一种方法,思路是:1、首先定义变量将当前的高度值保存下来。JavaScript代码复制var curHeight = $(this).height();2、将元素高度...

weixin_42087730的博客 2014

DoubletFinder实战:如何优化参数提升scRNA-seq双细胞识别准确率?

本文深入探讨了如何通过优化DoubletFinder参数提升scRNA-seq双细胞识别准确率。详细解析了pK和nExp参数的影响机制,提供了系统化的参数优化流程和多样本整合策略,并结合真实数据集演示了验证方法与高级应用场景,帮助研究人员获得更可靠的分析结果。

weixin_28523493的博客 339

吃透 AM32 无人机电调:从源码架构到工作原理的全方位解析(附实践指南)(上)

本文深入解析了AM32电调固件的源码架构与核心模块实现。文章首先介绍了AM32电调作为开源无人机;动力心脏的重要地位,随后从硬件基础、源码目录、模块划分三个维度构建解析框架。重点剖析了系统初始化模块的时钟配置、GPIO初始化和定时器设置,以及FOC控制模块的坐标变换算法、角度估算和SVPWM生成等关键技术实现。通过逐行代码解析,揭示了电调如何将飞控指令转换为电机驱动的完整过程,为开发者理解AM32电调工作原理提供了系统性指导。

bother3000的博客 6560

Java_高度检查器(HeightChecker)

题目 思路 //本质是与升序排序对比有多少元素不在应在的位置上 //sort排序数组得到新数组 //同时遍历新旧数组,相同index,不同value,count++; class Solution { public int heightChecker(int[] heights) { int count=0; int[] copyHeights=new...

Chill Lyn 249

【YOLOv12改进trick】高效多尺度卷积注意力EMCAD_Block模块引入YOLOv12,实现涨点和效率提升,含创新点Python代码

EMCAD引入YOLOv12模块,实现高效多尺度注意力模块引入到YOLOv12中的快速涨点及效率提升

向上生长的程序媛的博客 851

求二叉树的深度和广度

#include "OJ.h" #include #include #include using namespace std; /* Description 给定一个二叉树,获取该二叉树的宽度深度。 Prototype int GetBiNodeInfo(BiNode &head, unsigned int *pulWidth, unsigned i

★匆匆★的专栏 1201

Java高频面试基础问题与知识点整理

Java高频面试知识点总结:覆盖高频基础知识考点+高频集合知识点深入分析+高频多线程与并发编程面试题汇总+其他扩展考察等。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

硬件学习手册【总目录】

欢迎大家来到《硬件学习手册》,专栏主要包括 《硬件经验手册》《电子元器件器件手册》《PCB手册》《CPU手册》《元器件选型手册》五个分册。在开始专栏的更新前,博主先列出专栏的大纲,以供大家参考。大家直接点击大纲中的蓝色标题即可轻松传送。

fydar的博客 5851

ViewGroup中的onLayout方法的理解

今天在自定义一个ViewGroup的时候出现了一个这样问题,事后分析是因为自己对ViewGroup中的onLayout方法和其中子View的layout方法的理解不足导致的。 我要实现的效果是做一个类似LinearLayout垂直排列子View的ViewGroup,在ViewGroup中onMeasure方法中测量完ViewGroup的大小以后进开始摆放子View了,onLayout的开始的代码如...

static_zh的博客 2134

Python 爬虫实战:Boss直聘 Python 岗位招聘数据爬取

本文介绍了一个Python爬虫项目,用于抓取Boss直聘平台的Python岗位招聘数据并进行可视化分析。项目采用requests库发送POST请求,通过抓包分析获取JSON接口,绕过HTML解析直接获取结构化数据。主要内容包括: 接口分析:找到关键POST接口,解析请求头和JSON参数格式 环境准备:安装requests/pandas/matplotlib/pyecharts等依赖库 核心实现: 手动获取登录Cookie 构建请求头和城市代码映射 实现分页抓取职位列表数据 项目特色在于直接解析JSON接口而

u014481728的博客 296

LeetCode 1051. 高度检查器(Height Checker) 28

1051. 高度检查器 1051. Height Checker 题目描述 学校在拍年度纪念照时,一般要求学生按照 非递减 的高度顺序排列。 请你返回至少有多少个学生没有站在正确位置数量。该人数指的是:能让所有学生以 非递减 高度排列的必要移动人数。 每日一算法2019/5/31Day 28LeetCode1051. Height Checker 示例: 输入:[1,1,4,2,1,3] 输出:3...

weixin_30247307的博客 253

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LeetCode_1051_高度检查器

题目链接 https://leetcode-cn.com/problems/height-checker/ 解题思路 首先将原数组复制一份为tmp 然后对数组tmp进行排序 比较原数组和排序后的tmp每个位置的不同个数即为答案 AC代码 class Solution { public int heightChecker(int[] heights) { int ans = 0; int len = heights.length; int[] t

Fitz的博客 204

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

1051. Height Checker。

Students are asked to stand in non-decreasing order of heights for an annual photo. Return the minimum number of students not standing in the right positions. (This is the number of students that mus...

繁城落叶 628

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

#力扣 LeetCode1051. 高度检查器 @FDDLC

题目描述: https://leetcode-cn.com/problems/height-checker/ Java代码: class Solution { public int heightChecker(int[] h) { int[] cp=h.clone(); Arrays.sort(h); int ans=0; for(int i=h.length-1;i>=0;i--)if(cp[i]!=h[i]).

LiuXingchang的博客 299

leetcode-1051. 高度检查器-C语言

int cmp(int *a, int *b){ return *a - *b; } int heightChecker(int* arr, int len){ int i; int cnt = 0; int arr2[len]; memcpy(arr2, arr, len*sizeof(int)); qsort(arr2, l...

SFFS 319

获取树的高度和深度

import org.assertj.core.util.Lists; import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) { Objects objects = new Objects...

weixin_30535043的博客 1039

获取指定元素的最大子元素(包括自身)的width值和height值

/* * 返回该htmlEl的最大子元素(包括自身)的width值 */ getMaxWidth : function(htmlEl, includeSelf) { var self = this; if(htmlEl) { var children = $(htmlEl).children(), maxWidth = includeSelf ? $(...

web开发 226

Vue获取屏幕高度

1.data中定义 curHeight:0,//当前所需屏幕高度 /**获取屏幕高度 */     beforeMount() {         var h = document.documentElement.clientHeight || document.body.clientHeight;         var curHeight = h

那拉的博客 4万+

vue填坑之回到顶部:

vue来实现回到顶部代码(参考慕课网):   let stop = false; // 全局变量,坑处   let timer = null; // 全局变量,坑处 mounted() { this.$nextTick(function () {

wmwmdtt的博客 1万+

vue.js获取屏幕高度clientHeight设置充满屏幕引导页

实现效果:方法:html:JS:&lt;script&gt; export default { data(){ return { clientHeight:'', } }, mounted(){ // 获取浏览器可视区域高度 this.clientHeight = `${document.documen...

jerrica的博客 5万+

mysql删除表时报错ERROR 1051 (42S02): Unknown table '...'

我报这个错误的原因是因为,之前存储引擎用的是MyISAM,后来改成InnoDB 但是删除不了表是因为之前表用的存储引擎模式还是MyISAM,删除不了。 第1种, 修改表的存储引擎: 第2种, 1.删除相应表的文件,在删除之前要确保表没有用,才能删除。 2.找到相应的库在系统中的位置,如:/var/lib/mysql/库名...

记录日常 2万+

【Leetcode】1051. Height Checker(138周赛第一题)(模拟题)

Students are asked to stand in non-decreasing order of heights for an annual photo. Return the minimum number of students not standing in the right positions. (This is the number of students that mu...

小I的博客 359

Java、Python/1051. Height Checker 高度检查器

题目 代码部分(Python 68ms 58.52%) class Solution: def heightChecker(self, heights: List[int]) -> int: tmp = sorted(heights) return sum(tmp[i] != heights[i] for i in ra...

qq_38959715的博客 1750
上一篇: Leetcode 561. Array Partition I, Java解法
下一篇: Leetcode 922. Sort Array By Parity II , Java解法
YuanTheCoder
博客等级 码龄9年 2粉丝 34原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值