首页 > 其他分享 >力扣904 水果成篮

力扣904 水果成篮

时间:2023-03-14 14:13:31浏览次数:41  
标签:904 int 力扣 num fruits 成篮

水果成篮:

按顺序取,问连续最多的两个数有几个。

总体思路:

1、如果是我们要的数,直接数量加一;

2、如果是新的数,那么j-1的位置的数就是第一个数,j位置的数就是第二个数。并且要更新j-1上数的数量,计算j-1 到 “碰到要丢弃的那个数” 的数量。

举例:

2 1 2 2 2 3 3 3 

当取到3时,要把3看成新的数,把前面连续的2都取了。最终答案为 2 2 2 3 3 3.

class Solution {
public:
    int totalFruit(vector<int>& fruits) {
        int i,j,k;
        int a[2];
        int num[2];
        int ans=0;
        int len=fruits.size();
        a[0]=fruits[0];
        num[0]=1;
        a[1]=-1;
        num[1]=0;
        for(j=1;j<len;j++){
            if(fruits[j]==a[0])
            num[0]++;
            if(fruits[j]==a[1])
            num[1]++;
            if(fruits[j]!=a[0]&&a[1]==-1)
            {
                num[1]=1;
                a[1]=fruits[j];
            }
            if(fruits[j]!=a[0]&&fruits[j]!=a[1]){
                ans=max(ans,num[0]+num[1]);
                a[0]=fruits[j-1];
                a[1]=fruits[j];
                num[0]=1;
                num[1]=1;
                for(int k=j-2;;k--){
                    if(fruits[k]==a[0])
                    num[0]++;
                    else
                    break;
                }
            }
            ans=max(ans,num[0]+num[1]);   
        }
        ans=max(ans,num[0]+num[1]);
        return ans;
    }
};

 

标签:904,int,力扣,num,fruits,成篮
From: https://www.cnblogs.com/bhd123/p/17214714.html

相关文章

  • 力扣简21 合并两个有序链表
    递归特别短!没这种思维!  自己用那种最直白的两个两个相比换指针指向导致会有空情况等特殊情况出错 看了题解是用递归什么的扩展一下这种思路而且可以采用给链表加......
  • 力扣180(MySQL)-连续出现的数字(中等)
    题目:编写一个SQL查询,查找所有至少连续出现三次的数字。返回的结果表中的数据可以按 任意顺序 排列。查询结果格式如下面的例子所示: 解题思路:原表数据: 方法......
  • 力扣---78. 子集
     给你一个整数数组 nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。 示例1:输入:nums=......
  • 力扣---面试题 17.05. 字母与数字
    面试题17.05.字母与数字给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子......
  • 力扣---844. 比较含退格的字符串
    给定s和t两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回true。#代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例1:输入:s="ab#c......
  • 力扣简2379 得到第k个黑块的最少涂色次数
    20230310每日一题滑动窗口题 classSolution{publicintminimumRecolors(Stringblocks,intk){intres=Integer.MAX_VALUE,len=blocks.length();......
  • 力扣71. 颜色分类
    颜色分类题目给定一个包含红色、白色和蓝色、共n个元素的数组nums,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数0、1......
  • 力扣中542 01矩阵
    题解1:广度遍历是从0出发然后一步能到的设置为1遍历矩阵设为遍历过入队再看一步能到的设置为2 题解2:动态规划     改不对bug是因为没有设置已经遍历过......
  • 力扣---2379. 得到 K 个黑块的最少涂色次数
    给你一个长度为n下标从0开始的字符串blocks,blocks[i]要么是'W'要么是'B',表示第i块的颜色。字符'W'和'B'分别表示白色和黑色。给你一个整数k,表示想要连......
  • 力扣中116 填充每个节点的下一个右侧节点指针
    题解1:  也就是一下就把队列里所有的元素移除了移除的同时添加左右节点队列中每次放的都是一层 题解2:找到next可以利用next找下一节点用pre标记每层第一个tmp......