算法013:水果成籃

水果成籃. - 備戰技術面試?力扣提供海量技術面試資源,幫助你高效提升編程技能,輕松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/fruit-into-baskets/

這道題題目很長,仔細閱讀過后,我們其實可以簡化成:

找出一個最長的子數組的長度,子數組中不超過兩種類型的水果。

相對于算法009來說,有很多相似的地方,不過不同的點在于,這個題還多了一個限制條件:子數組中不超過兩種類型的水果。這是什么意思呢?

我們自己模擬出一個hash表后,還需要用一個參數kinds來記錄當前不同類型的水果,當hash表中的值從0變成1的時候,kinds值+1,反之則-1。

右指針向右移動,移動到數字時,讓hash表的值+1,如果這個數是第一次出現,則kinds的值+1

kinds的值大于2了,說明滑動窗口不符合條件了,此時左指針向右移動,并且移動到的數字讓hash表的值-1,如果這個hash表的值為0了,說明這個數字不存在于滑動窗口里面了,此時讓kinds-1.

最后記錄下最長的滑動窗口的數字。

代碼:

class Solution {public int totalFruit(int[] fruits) {int n = fruits.length;int[] hash = new int[n+1];int ret = 0;for(int left = 0, right = 0, kinds = 0; right < n; right++){int in = fruits[right];if(hash[in] == 0){kinds++;}hash[in]++;while(kinds > 2){int out = fruits[left];hash[out]--;if(hash[out] == 0){kinds--;}left++;}ret = Math.max(ret, right - left + 1);}return ret;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43109.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43109.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43109.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL 9.0新特性:向量存儲

MySQL 9.0 正式版已經發布&#xff0c;其中一個亮點就是向量&#xff08;VECTOR&#xff09;數據類型的支持&#xff0c;本文給大家詳細介紹一下這個新功能。 向量類型 MySQL 9.0 增加了一個新的向量數據類型&#xff1a;VECTOR。它是一種可以存儲 N 個數據項的數據結構&…

Redis Stream:實時數據流的處理與存儲

Redis Stream:實時數據流的處理與存儲 引言 在當今數據驅動的世界中,實時數據處理和存儲成為了許多應用的核心需求。Redis Stream作為一種新興的數據結構,為Redis帶來了強大的流處理能力。本文將深入探討Redis Stream的特點、使用場景以及如何高效地利用它來處理實時數據流…

聚焦數字創新,定義影像未來

國際數字影像產業園在明確產業定位與發展方向時&#xff0c;應聚焦于數字影像、文創、媒體等新興產業領域&#xff0c;以技術創新為核心動力、產業升級為保障、市場拓展為途徑、國際化發展為方向&#xff0c;推動園區的持續健康發展。 作為園區的核心產業&#xff0c;數字影像產…

python socks5代理的使用

需要安裝依賴 1、解決方法1 In order to make requests use socks proxy, you need to install it with it’s dependency. pip install requests[socks]2、解決方法2 pip install PySocks

第二證券股市知識:股票填權是怎么回事?利好還是利空?

1、股票填權的含義 股票填權是指在除權除息之后的一段時刻內&#xff0c;假設多數投資者看好該個股&#xff0c;股票的價格超過除權除息的基準價就叫做填權。上市公司假設能持續分紅&#xff0c;就會向市場傳遞積極信號&#xff0c;招引更多投資者買入&#xff0c;越來越多的投…

使用Livox-Mid360激光雷達,復現FAST_LIO(保姆級教程)

前面我已經完成了mid360激光雷達的驅動安裝&#xff0c;octomap的復現&#xff0c;昨天我去把這倆在正式環境中實測了一下&#xff0c;效果不好&#xff0c;走廊轉角沒建出來&#xff0c;我查了一下&#xff0c;應該是TF的原因&#xff0c;但這部分我還不太懂&#xff0c;看到有…

云計算【第一階段(28)】DNS域名解析服務

一、DNS解析的定義與作用 1.1、DNS解析的定義 DNS解析&#xff08;Domain Name System Resolution&#xff09;是互聯網服務中的一個核心環節&#xff0c;它負責將用戶容易記住的域名轉換成網絡設備能夠識別和使用的IP地址。一般來講域名比 IP 地址更加的有含義、也更容易記住…

2024世界人工智能大會:deepin引領AI與操作系統融合新時代

內容來源&#xff1a;deepin&#xff08;深度&#xff09;社區 7月4日&#xff0c;WAIC 2024在上海拉開帷幕。大會圍繞核心技術、智能終端、應用賦能三大板塊&#xff0c;聚焦大模型、算力、機器人、自動駕駛等重點領域&#xff0c;集中展示一批“人工智能”創新應用最新成果。…

【web前端HTML+CSS+JS】--- JS學習筆記03

一、JS介紹 可以在前端頁面上進行邏輯處理&#xff0c;來解決表單的驗證等問題&#xff0c;提升效率&#xff0c;直接在前端提示問題&#xff0c;減少服務器壓力 應用1&#xff1a;可以做靜態驗證和動態驗證&#xff08;進行異步請求&#xff09; 應用2&#xff1a;可以解析后…

monad理解

每個學習monad的人都要寫一份自己理解的monad。然后還是包括自己沒人能看到自己在寫啥&#xff0c;而且大部分寫的還是錯誤的。 距離學習monad有接近2周了&#xff0c;已經挺模糊了。 monad我理解有兩個基本作用&#xff1a; 1. 能夠對全部的返回值做鏈式調用。只能封裝成mona…

學習數據庫2

在數據庫中創建一個表student&#xff0c;用于存儲學生信息 查看建表結果 向student表中添加一條新記錄 記錄中id字段的值為1&#xff0c;name字段的值為"monkey"&#xff0c;grade字段的值為98.5 并查看結果 向student表中添加多條新記錄 2,"bob"…

鴻蒙開發小案例(名片管理))

鴻蒙開發小案例&#xff08;名片管理&#xff09; 1、頁面效果1.1 初始頁面1.2 點擊名片展開1.3 點擊收藏1.4 點擊編輯按鈕 2、實現代碼2.1 DataModel.ets2.2 RandomUtil.ets2.3 ContactList.ets 1、頁面效果 1.1 初始頁面 1.2 點擊名片展開 1.3 點擊收藏 1.4 點擊編輯按鈕 2、…

百度、谷歌、必應收錄個人博客網站

主要是給各個搜索引擎提交你的sitemap文件&#xff0c;讓別人能搜到你博客的內容。 主題使用的Butterfly。 生成sitemap 安裝自動生成sitemap插件。 npm install hexo-generator-sitemap --save npm install hexo-generator-baidu-sitemap --save在站點配置文件_config.yml…

【手撕數據結構】卸甲時/空間復雜度

目錄 前言時間復雜度概念?O的漸進表?法小試牛刀 空間復雜度 前言 要想知道什么是空/時間復雜度,就得知道什么是數據結構。 這得分兩層來理解。我們生活中處處存在數據&#xff0c;什么抖音熱點上的國際大事&#xff0c;什么懂的都懂的雍正卸甲等等一系列我們用戶看得到的&a…

鴻蒙語言基礎類庫:【@ohos.url (URL字符串解析)】

URL字符串解析 說明&#xff1a; 本模塊首批接口從API version 7開始支持。后續版本的新增接口&#xff0c;采用上角標單獨標記接口的起始版本。開發前請熟悉鴻蒙開發指導文檔&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點擊或者復制轉到。 導入…

【K8s】專題六(5):Kubernetes 穩定性之重啟策略、滾動更新策略

以下內容均來自個人筆記并重新梳理&#xff0c;如有錯誤歡迎指正&#xff01;如果對您有幫助&#xff0c;煩請點贊、關注、轉發&#xff01;歡迎掃碼關注個人公眾號&#xff01; 目錄 一、重啟策略 1、基本介紹 2、資源清單&#xff08;示例&#xff09; 二、滾動更新策略 …

Vue框架引入

vue簡介 1.1.vue是什么?Vue官網 英文官網: https://vuejs.org/中文官網: https://cn.vuejs.org/ vue是一套構建用戶界面的漸進式javascript框架 構建用戶界面:將我們手里拿到的數據通過某種辦法變成用戶可以看見的界面前端工程師的職責:就是在合適的時候發出合適的請求,然后…

展開說說:Android服務之bindService解析

前面兩篇文章我們分別總結了Android四種Service的基本使用以及源碼層面總結一下startService的執行過程&#xff0c;本篇繼續從源碼層面總結bindService的執行過程。 本文依然按著是什么&#xff1f;有什么&#xff1f;怎么用&#xff1f;啥原理&#xff1f;的步驟來分析。 b…

Splunk Enterprise 任意文件讀取漏洞(CVE-2024-36991)

文章目錄 前言漏洞描述影響版本漏洞復現POC批量檢測-nuclei腳本 修復建議 前言 Splunk Enterprise 是一款強大的機器數據管理和分析平臺&#xff0c;能夠實時收集、索引、搜索、分析和可視化來自各種數據源的日志和數據&#xff0c;幫助企業提升運營效率、增強安全性和優化業務…

數據庫作業3

DELETE FROM student WHERE grade IS NULL; 一、數據庫操作部分 1. 向 student 表中添加一條新記錄&#xff1a; INSERT INTO student (id, name, grade) VALUES (1, monkey, 98.5); 2. 向 student 表中添加多條新記錄&#xff1a; INSERT INTO student (id, name, grade) V…