leecode904水果成篮——手写详解

Arcgis模型构建器01——写一个简单的模型 在使用模型构建器解决这个需求之前,我们要想清楚如果我们手动解决的话,应该如何去处理,因为构建模型的过程正是基于我们手动处理的过程来构建的。我有一个全国的dem影像数据和一个陕西省边界范围矢量,现在我想获取陕西省的dem影像的坡度数据。填写完之后点击确定,我们发现,两个输入数据和工具连接起来了,并且通过裁剪工具得到一个中间结果,即。我们发现工具框和中间数据框都存在阴影,说明已经运行过了这个模型,不报错就说明模型运行成功!现在我们就把数据和工具都串联起来了,成功构建好了模型。 阅读详情

思路讲解和分析

ee486f876cdccb63433135c6ec6c5528_720.png

98b9598a519f4d89109969ab33adbee2_720.png

代码分析

通过代码(未优化)

参考这个错误分析对这个代码进行分析,并抽时间进行优化

    public static int totalFruit(int[] fruits) {
        int fast = 0,low=0;
        int length=0;
        int type1=fruits[fast];
        int type2=fruits[low];
        int mark=0;  //引入一个标记位
        int index=0;  //确定更新位置
        for(fast=0;fast<fruits.length;fast++){
            if(fruits[fast]==type1||fruits[fast]==type2){
                //这个fruit.length的长度是不是可以利用牺牲空间换时间来进行调整
//                if(fast<fruits.length-1&&fruits[fast]!=fruits[fast+1]){
//                    index=fast+1;   //确定low的更新位置
//                }
                length=Math.max(length,fast-low+1); //更新数组长度
            }
            //什么进行更新数据呢
            else if(fruits[fast]!=type1&&fruits[fast]!=type2){
                //当读取到的元素不等于第一个元素,也不等于第二个元素的时候要进行更新low
                //这个更新当对type第一次复制的时候low是不进行改变的,改变的是第二次赋值的时候,所以说我们在这里再加入一个判断语句
                //这个的这个判断语句并不能解决所有的情况,因此我们不能这样做
                if(mark==0){
                    type2=fruits[fast];
                    mark=1;
                }else {
                    type2=fruits[fast];
                    //low=index;//要求low,我直接进行一个循环,就不用这个标记位了
                    index=fast-1;
                    while(index>=1&&fruits[index]==fruits[index-1]){
                        index--;
                        low=index;
                    }
                    if(index==fast-1){
                        low=index;
                    }
                    type1=fruits[low];
                }
                length=Math.max(length,fast-low+1); //更新数组长度
            }
        }
        return length;
    }
}

优化后完整代码

package 数组;

import com.sun.prism.shader.DrawEllipse_LinearGradient_REFLECT_AlphaTest_Loader;

import java.util.Scanner;

public class 水果成篮904 {
    public static void main(String[] args) {
        int n;
        Scanner input = new Scanner(System.in);
        System.out.println("请输入数组的长度");
        n=input.nextInt();
        int[] num = new int[n];
        System.out.println("输入数组的元素");
        for (int i = 0; i < num.length; i++) {
            num[i]= input.nextInt();
        }
        System.out.println(totalFruit(num));
    }
    public static int totalFruit(int[] fruits) {
        int fast = 0,low=0;int length=0;
        int type1=fruits[fast];int type2=fruits[low];
        int index=0;  //确定更新位置
        for(fast=0;fast<fruits.length;fast++){
            if(fruits[fast]!=type1&&fruits[fast]!=type2){
                //优化代码这个mark能不能消去.想了半天还是没有想到这个index这个有没有别的优化代码,感觉这样就差不多了
                if(index==0){
                    type2=fruits[fast];
                    index=-1;
                }else {
                    type2=fruits[fast];
                    //优化代码这个后面的一个循环一个判读能不能对其进行缩减
                    low = fast - 1;
                    while (low >= 1 && fruits[low] == fruits[low - 1]) {
                        low -= 1;
                    }
                    type1 = fruits[low];
                }
            }
            length=Math.max(length,fast-low+1); //更新数组长度
        }
        return length;
    }
}

知识图谱:综述 第一种理解:知识图谱本质上是语义网络。本体论是语义网络中最重要的一个要素。第二种理解:知识图谱也叫做多关系图,由多种类型的节点和多种类型的边组成。课程以第二种理解为主。 阅读详情

相关推荐

Delphi解决 openssl DLL 与 Indy 的SSL/TLS 连接问题

​ 使用 SSL 连接时出错。错误 1409442E:SSL 例程:ssl3_read_bytes:tlsv1 警报协议版本 由于我使用的是最新版本的Indy,根据Delphi Praxis 上的此线程,这种情况不应该发生。事实证明,不知何故,一个非常旧版本的 openssl DLLlibeay32.dll和ssleay32.dll已被放置在我计算机上的 sarch 路径中(版本 1.0.0e)。

Delphi开发局QQ群:32422310 2494

1-数组-51-水果成篮-LeetCode904

算法:数组-水果成篮-LeetCode904

weixin_43873121的博客 587

MATLAB对pcap文件抓包的读取

应用范围 常用的雷达信号,无线网通信信号的格式大多为pcap、wj文件,这里记录一下MATLAB读取pcap文件的方法,具体处理过程及读取协议针对不同的雷达有不同的处理方式,在这里不做说明。 程序 clc;clear;close all; %% 文件位置 filename= 'E:\File\JOB\JOB_1\data.pcap'; fid = fopen(filename,'r'); % 打开包 tmpPack = fread(fid,1350); % 只读前1350个数 读到

诗酒趁年华的博客 3579

LeetCode 904 水果成篮

LeetCode 904 水果成篮 这是一道双指针的题,很有意思。 class Solution { public int totalFruit(int[] tree) { int len = tree.length; HashMap<Integer, Integer> hashmap = new HashMap<>(); ...

qq_29453229的博客 262

Xshell 连接 kali 虚拟机教程

启动ssh服务,启动后重新查看ssh服务状态,如下图active(running)正常。至此便可以直接使用Xshell登录kali系统了。至此虚拟机已经可以上网。-查看ssh服务状态。

qq_40726937的博客 2219

gradle报错:A problem occurred configuring root project ‘My Application‘.

即使翻译了,我开始也看不懂,到处找网上教程,但都是改环境变量。马虎的我即使看了很多遍,改了很多遍也没反应过来,今天第一次搞gradle,突然就报错了,打印出。好了我就继续看项目了。

m0_59878789的博客 4090

C++ 力扣 904.水果成篮 题解 优选算法 滑动窗口 每日一题

本文解析LeetCode 904题“水果成篮”。题目要求在只能用两个篮子装单一类型水果的规则下,求能收集的最大水果数,本质是找含最多2种元素的最长连续子数组。 文章先分析题目价值,指出其是滑动窗口在限制元素种类场景的经典应用。接着拆解问题,提炼核心约束与目标,随后阐述从暴力解法到滑动窗口的思路演进,给出哈希表和数组两种实现方式,并对比分析,还总结了实现中的坑点,最后点明滑动窗口核心逻辑,预告下一题。

Q741_147的博客 1362

SAP LTMC实战指南:物料主数据高效导入全解析

本文详细解析了SAP LTMC工具在物料主数据高效导入中的实战应用,包括工具选择、项目搭建、模板定制、数据导入全流程及常见问题解决方案。重点介绍了LTMC的预置模板、LTMOM灵活配置、数据校验机制等核心功能,帮助用户快速掌握SAP数据迁移技巧,提升工作效率。

weixin_33738555的博客 435

LeetCode每日一题——904. 水果成篮

你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果: 你只有 两个 篮子,并且每个篮子只能装 单一类型 的水果。每个篮子能够装的水果总量没有限制。 你可以选择任意一棵树开始采摘,你必须从 每棵 树(包括开始采摘的树)上 恰好摘一个水果 。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右移动到下一棵树,并继续采摘

hyk的博客 698

Win11下Wezterm配置Powershell默认终端全攻略(含主题同步技巧)

本文详细介绍了在Windows 11系统中,如何安装和配置Wezterm终端模拟器,并将其设置为PowerShell的默认终端。内容涵盖使用Winget或手动安装Wezterm,通过修改.lua配置文件切换默认Shell,并同步Campbell主题配色以还原熟悉的PowerShell视觉体验,旨在帮助开发者打造高效、个性化的命令行工作环境。

weixin_28363123的博客 1209

高通9008模式隐藏技巧:不拆机用ADB命令+Diag协议进入EDL

本文深入解析高通EDL模式(紧急下载模式)的技术原理与实战应用,详细介绍了通过ADB命令和Diag协议无需拆机进入EDL的方法。涵盖硬件/软件触发方案、跨平台工具配置、Firehose协议解析及设备救砖流程,为开发者提供从基础到进阶的完整指南。

weixin_29191761的博客 1124

力扣904 水果成篮--滑动窗口+哈希表

unordered_map函数,我简单一点理解就是哈希表,详细可以参考滑动窗口的重要性是确定起始指针跟终止指针的位置,用一个for循环解决两个for循环的问题(类似于双指针)

qq_62035394的博客 1270

YOLOv9改进策略目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制

Hello,各位读者们好本专栏自开设两个月以来已经更新改进教程50余篇其中包含RepNCSPELAN4、主干、检测头、注意力机制、Neck多种结构上创新,也有损失函数和一些细节点上的创新。同时本人一些讲解视频和包含我所有创新的YOLOv9文档并不能在优快云上传(所有的创新点都经过我的测试是可用的,得到该文件之后大家可以随意组合使用),所以会建立群的形式在内上传我的文件和视频我也会在群内不定期和大家交流回答大家问题,同时定期会更新一些文章的创新点(经过我融合测试后的,先到先得)。

Snu77的博客 1万+

Java&LeetCode 初入门——904. 水果成篮

Java&LeetCode 初入门——904. 水果成篮题目个人解法 文内代码全部采用JAVA语言。 题目 在一排树中,第 i 棵树产生 tree[i] 型的水果。 你可以从你选择的任何树开始,然后重复执行以下步骤: 1、把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。 2、移动到当前树右侧的下一棵树。如果右边没有树,就停下来。 请注意,在选择一颗树后,你没有任何选择:你必须执行步...

红鲤鱼绿鲤鱼与赤小豆的博客 490

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

904. 水果成篮

904. 水果成篮题目描述解题思路代码 题目描述 你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果: 1,你只有 两个 篮子,并且每个篮子只能装 单一类型 的水果。每个篮子能够装的水果总量没有限制。 2,你可以选择任意一棵树开始采摘,你必须从 每棵 树(包括开始采摘的树)上 恰好摘一个水果 。采摘的水果应当符合篮子中的水果

计算机小白的奋起 348

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LeetCode904.水果成篮

先对这个数组进行双重遍历,内层循环从外层循环的下一个数开始遍历,在进入外层循环之前,先将计数器加一,再将外层循环的起始水果类型放入链表中,在内层循环中,先判断这个水果类型在链表中是否存在,若存在,将计数器加一;我们先让right指针向右移动,若right指向的水果类型再数组中有没有,即若数组中对应类型的值为0,就将kind++,并将arr[kind]++;由于题目中要求对水果的种类进行判断,于是可以用一个链表来存储水果的种类;我们可以在第一次判断完成之后,只将3类型的水果移出篮子即可。

2301_79184547的博客 555

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

LeetCode904. 水果成篮

本文为LeetCode904. 水果成篮的解析,欢迎参考或提出建议,期待您的关注!

Toby的博客 799

【滑动窗口】水果成篮

【滑动窗口】水果成篮

日常学习分享 1068

LeetCode - 904. 水果成篮

【摘要】题目"水果成篮"要求在整数数组中找到最长的连续子数组,其中最多包含两种不同的数字(水果种类)。采用滑动窗口法,用双指针标记窗口边界,哈希表统计水果种类。当种类超过2时收缩左边界,直至窗口合法。常见错误是未及时删除哈希表中计数为0的水果种类,导致统计错误。正确解法需在减少计数后检查并删除零值项,同时移动左指针。时间复杂度为O(n),空间复杂度O(1)。示例代码展示了正确处理逻辑,确保窗口内始终不超过2种水果,并动态更新最大长度。

2402_83315537的博客 518

《算法闯关指南:优选算法--滑动窗口》--13水果成篮

【算法实战:滑动窗口解水果成篮问题】博主草莓熊Lotso分享力扣904题解法,通过滑动窗口处理连续区间问题。当窗口内水果种类超过2种时,左指针右移调整窗口,利用哈希表统计频次,最终求出最大区间长度。提供C++两种实现:容器版和数组模拟哈希表版,并附算法思路图解。关键词:滑动窗口、哈希表、双指针、区间处理。

会当凌绝顶,一览众山小 1427

【LeetCode】滑动窗口_水果成篮_C++

本文介绍了一个滑动窗口算法解决LeetCode 904题"水果成篮"问题。

2501_90654211的博客 1590

水果成篮

LeetCode 904 水果成篮 在一排树中,第i棵树产生tree[i]型的水果。 你可以从你选择的任何树开始,然后重复执行以下步骤: 把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。 移动到当前树右侧的下一棵树。如果右边没有树,就停下来。 请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1 ,然后执行步骤 2,依此类推,直至停止。 你有两个篮子,每个篮子可以携带任何数量的水果,但你希望每个篮子只携带一种类型的水果。 用这个程序你能收集的水果总量是多

jump_into_zehe的博客 556

LeetCode 904. 水果成篮(滑动窗口)

1. 题目 在一排树中,第 i 棵树产生 tree[i] 型的水果。 你可以从你选择的任何树开始,然后重复执行以下步骤: 把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。 移动到当前树右侧的下一棵树。如果右边没有树,就停下来。 请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1,然后执行步骤 2,依此类推,直至停止。 你有两个篮子,每个篮子可以携带任何数量的水果,但你希望每个篮子只携带一种类型的水果。 用这个程序你能收集的水果总量是多少? 示例 1:

Michael是个半路程序员 2550

leecode 904.水果成篮 双指针滑动窗口算法

双指针滑动窗口题解

m0_73594607的博客 465

【LeetCode904. 水果成篮】——滑动窗口、哈希表

【LeetCode904. 水果成篮】——滑动窗口、哈希表

weixin_51630192的博客 423

LeetCode 904:水果成篮(滑动窗口) —— 题解

滑动窗口——水果成篮

2601_96587588的博客 587
上一篇: 手写讲解leecode704题,带你搞明白这二分搜索的易错点
下一篇: leecode209长度最小的子数组——手写详解
TranquilGlow
博客等级 码龄5年 132粉丝 62原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值