首页 > 其他分享 >最多能完成排序的块

最多能完成排序的块

时间:2024-01-31 23:12:56浏览次数:24  
标签:arr right 完成 int ret 最多能 数组 排序

769. Max Chunks To Make Sorted (Medium)

数组arr[0, 1, ..., arr.length - 1]的一种排列,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。

我们最多能将数组分成多少块?

示例 1:

输入: arr = [4,3,2,1,0]
输出: 1
解释:
将数组分成2块或者更多块,都无法得到所需的结果。
例如,分成 [4, 3], [2, 1, 0] 的结果是 [3, 4, 0, 1, 2],这不是有序的数组。

示例 2:

输入: arr = [1,0,2,3,4]
输出: 4
解释:
我们可以把它分成两块,例如 [1, 0], [2, 3, 4]。
然而,分成 [1, 0], [2], [3], [4] 可以得到最多的块数。

注意:

  • arr 的长度在 [1, 10] 之间。
  • arr[i][0, 1, ..., arr.length - 1]的一种排列。

题目描述:分隔数组,使得对每部分排序后数组就为有序。

public int maxChunksToSorted(int[] arr) {
    if (arr == null) return 0;
    int ret = 0;
    int right = arr[0];
    for (int i = 0; i < arr.length; i++) {
        right = Math.max(right, arr[i]);
        if (right == i) ret++;
    }
    return ret;
}

参考:

标签:arr,right,完成,int,ret,最多能,数组,排序
From: https://www.cnblogs.com/i9code/p/18000325

相关文章

  • 蒻苟的第一篇学习笔记(快速排序)
    快速排序是一个非常经典也非常常用的排序算法。在平均状况下,排序n个项目需要Ο(nlogn)次比较,在最坏状况下则需要Ο(n2)次比较,但这种状况其实并不常见。快速排序是分而治之思想在排序算法上的典型应用。算法步骤:1.从数列中挑出一个元素,称为"基准"。2。设置两个"哨兵",利用......
  • [word] 如何快速完成Word自动生成目录,无需代码,直接搞定,秒学!
    很多不会添加目录的朋友可能觉得很麻烦,其实并不是这样,今天小编为大家分享一个自动生成目录的方法,不用复杂的代码,就可以直接搞定啦!一、设置标题首先,先给Word设置标题。选中文字,点右上角【样式】,选择自己需要的样式就可以了。......
  • 深入浅出堆排序: 高效算法背后的原理与性能
    ......
  • 快速排序:高效分割与递归,排序领域的王者算法
    ......
  • 【学习笔记】排序
    选择排序选择排序是一种简单的排序算法。它的原理是每次找到数组中的最小值放到正确的位置。选择排序的最好、最坏、平均时间复杂度都是\(O(n^2)\),空间复杂度为\(O(1)\)。由于存在交换这一操作,选择排序是一个不稳定的排序算法。voidselectionSort(inta[],intn){ for(int......
  • SD-WAN搭建四五天能否完成?
    SD-WAN(软件定义广域网)作为一种灵活而高效的网络架构,受到越来越多企业的青睐。然而,在SD-WAN搭建的过程中,一个常见的问题是,是否能够在短时间内完成搭建工作。本文将深入探讨SD-WAN搭建的时间要求,以及在实际操作中可能涉及的因素。SD-WAN搭建的主要步骤1、需求分析和规划:在开始SD-WAN......
  • [word] 高效完成工作的方法,这几招Word技巧要学
    工作效率想要提高?学习这几个Word技巧,可以又快又好的完成工作。下面给大家分享几个简单又好用的技巧。1、快速对齐文字文字个数不一样,如何快速对齐文字?选中文本区域,点击开始-段落-中文版式-调整宽度,修改为7字符,如若不知道几个字符,可以选中最长文字进入查看字符数。??2、添加下划线制......
  • 洛谷题单指南-排序-P1012 [NOIP1998 提高组] 拼数
    原题链接:https://www.luogu.com.cn/problem/P1012题意解读:通过某种合理的排序方式,使得排序后的数字连在一起最大。解题思路:此题关键在于排序,对于两个数字,哪个数字应该排在前面呢?1、思考误区很容易想到,给定两个数abcd、xyz,先比较第一位a和x,谁大谁排前面,一直到c和z。再来看d,这......
  • vue3+ts使用插件vue3-esign完成签字、重签(h5、vant)
    1.安装vue3-esign:npmivue3-esign2.main.ts中引入:importVue3Esignfrom'vue3-esign'app.use(Vue3Esign)3.页面中代码:<van-nav-bartitle="手写签字"left-arrowfixed/><divid="sign_box"><divclass="text&......
  • 洛谷题单指南-排序-P1104 生日
    原题链接:https://www.luogu.com.cn/problem/P1104题意解读:将学生按照年龄由大到小排序,如果年龄相同,后输入的排在前面,输出排序后的学生姓名。解题思路:此题是一个排序常规题,年龄大排在前说明年、月、日越小越在前面,核心的排序思路如下:1、如果年份不同,按年份由小到大排序2、如果......