首页 > 其他分享 >LeetCode 915.分割数组

LeetCode 915.分割数组

时间:2023-06-07 14:02:21浏览次数:35  
标签:前缀 min int nums length num 数组 915 LeetCode


LeetCode 915.分割数组

思路

模拟题,两遍遍历,因为要保证左侧区间尽可能小,所以就要找到最左面的适合的点,所以第一遍先从最右边开始记录前缀最小的数,之后再从左往右遍历一遍记录当前最大的前缀,同时将当前最大前缀与下一位的最小前缀比较,如果小于下一位的最小前缀则直接输出即可

代码

class Solution {
public:
    int partitionDisjoint(vector<int>& nums) {
        int length = nums.size();
        int min_num[length], max_num=0;
        min_num[length-1] = nums[length-1];
        for(int i=length-2;i>=0;i--)
        {
            min_num[i] = min(min_num[i+1], nums[i]);
        }
        // for(int i=0;i<length;i++)   cout<<min_num[i]<<endl;
        for(int i=0;i<length;i++)
        {
            max_num = max(max_num, nums[i]);
            // cout<<max_num<<endl;
            if(min_num[i+1]>=max_num) return i+1;
        }
        return 0;
    }
};


标签:前缀,min,int,nums,length,num,数组,915,LeetCode
From: https://blog.51cto.com/u_15567308/6431278

相关文章

  • LeetCode 934.最短的桥
    LeetCode934.最短的桥题目限制了岛的数量肯定为2,所以我们只需要找到两个岛即可,首先通过遍历每一个坐标找到一个岛的点(值为1),接着以这个点开始DFS,找到该岛上所有的点,并将值设为-1,然后以这些点为基础集合,再进行BFS,当找到第一个值为1的点时,BFS的层数就是需要翻转的数目classSolution......
  • LeetCode 907.子数组的最小值之和
    LeetCode907.子数组的最小值之和本题由于每一项都需要遍历到,所以我们要计算所有可能的排列组合情况,所以这道题我们应该从每个元素分别出发,构建单调栈,找到每个元素左边和右边第一个比他小的元素,在这个区间范围内,我们可以断定任何一个子区间得到的最小值都是当前选定这个元素,所以最......
  • 【LeetCode】11月每日一题刷题记录
    575.分糖果classSolution{public:intdistributeCandies(vector<int>&candyType){unordered_set<int>S;for(autoc:candyType)S.insert(c);returnmin(candyType.size()/2,S.size());}};237.删除链表中的节点由于是单链表......
  • LeetCode 862.和至少为k的最短子数组
    LeetCode862.和至少为k的最短子数组本题前缀和队列并不单调,所以应该算变种单调队列,在计算出单调队列以后还要进行进一步优化,即在如下条件如果我们找到当前的s[i]满足条件,则说明之后选取的s[i]不管是多少,均没有当前s[i]距离s[j]近,所以在此以后的值均可以丢弃,同理,s[j]之前的值也是......
  • LeetCode 388.文件的最长绝对路径
    题目链接思路针对文件路径的特征,一个文件中一定包含.分隔符,以此为依据可以判定当前字符串是否是一个文件,文件系统是一个树形结构的角度来看的话,题中给定的字符串实际上是以一个树形结构前序遍历的序列,连续的\t表示出了当前的深度,而相邻的节点之间以\n进行分割。假设当前的路径为x/......
  • JS 模拟 Java 动态数组(类)
     Code:/***动态数组*@class*/varDArray=(function(){/***数据数组*@type{*[]}*/letdata;/***数组中的元素个数*@type{number}*/letsize;/***调整数组容器大小*@param{number}new_capacity*/co......
  • 多态数组
    多态数组的应用1多态数组数组的定义类型为父类类型,里面保存的实际元素类型为子类类型继承结构如下:创建1个Person对象,2个Student对象和2个Teacher对象,统一放在数组中,并调用say方法父类Person:packagehspedu.poly_.polyarr_;publicclassPerson{privateString......
  • #yyds干货盘点# LeetCode程序员面试金典:二叉树的右视图
    1.简述:给定一个二叉树的根节点root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例1:输入: [1,2,3,null,5,null,4]输出: [1,3,4]示例2:输入: [1,null,3]输出: [1,3]示例3:输入: []输出: []2.代码实现:classSolution{publicList<I......
  • 数组和元祖数据类型
    使用案例来讲解TS的数组类型和元祖类型数组类型方式一要求:定义一个数组这个数组只能存储数值类型的数据letvalArr:Array<Number>//定义一个数组类型存储数值valArr=[1,2,3]//正常valArr=["1","2",3];//会报错console.log(valArr);方式二字符串数组......
  • #yyds干货盘点# LeetCode程序员面试金典:二叉树中的最大路径和
    题目:二叉树中的路径被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中至多出现一次。该路径至少包含一个节点,且不一定经过根节点。路径和是路径中各节点值的总和。给你一个二叉树的根节点root,返回其最大路径和。 示例1:输入:root=......