Leetcode-?930. 和相同的二元子數組?

Problem: 930. 和相同的二元子數組

思路

滑動窗口

解題過程

我們可以通過計算 和大于等于 goal 的子數組數目和大于等于 goal+1 的子數組數目差值,來得到 和恰好等于 goal 的子數組數目。

Code

c++

class Solution {
public:int at_most(vector<int>& nums, int goal) {int ans = 0;int n = nums.size();int l = 0;int sum = 0;for(int r = 0; r < n; r ++){sum += nums[r];while(sum >= goal && l <=r){sum -= nums[l];l++;}ans += l;}return ans;}int numSubarraysWithSum(vector<int>& nums, int goal) {return at_most(nums, goal) - at_most(nums,goal+1);}
};

python

class Solution:def numSubarraysWithSum(self, nums: List[int], goal: int) -> int:def at_most(goal):ans = 0n = len(nums)l = 0sum = 0for r, x in enumerate(nums):sum += xwhile sum >= goal and l <= r:sum -= nums[l]l += 1ans += lreturn ansreturn at_most(goal) - at_most(goal + 1)

復雜度

  • 時間復雜度: O(n)O(n) O(n)
  • 空間復雜度: O(1)O(1) O(1)

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

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

    相關文章

    『大模型筆記』第1篇:高效請求排隊:優化大語言模型(LLM)性能

    『大模型筆記』高效請求排隊:優化大語言模型(LLM)性能 文章目錄 一. 起點:基礎的推理引擎二. 問題:“重度用戶”會阻塞其他用戶三. 解決方案:公平調度3.1. 擴展思路四. 問題:后端隊列沒有“反壓”機制五. 解決方案:獲取后端指標5.1 擴展思路六. 替代方案:后端優先級調…

    Docker Docker Compose 一鍵安裝

    目錄 獲取安裝腳本文件執行安裝腳本文件文章結束?? 注意事項&#xff1a;Docker V1 與 V2 的區別 一行命令裝 docker 和 docker compose。 你是否厭倦了在不同的 Linux 系統上一遍又一遍地手動安裝 Docker 和 Docker Compose&#xff1f;&#x1f914; 不論你是 Ubuntu 、Deb…

    Java 單例模式實現方式

    Java 單例模式實現方式 單例模式是確保一個類只有一個實例&#xff0c;并提供一個全局訪問點的設計模式。以下是 Java 中實現單例模式的幾種常見方式&#xff1a; 1. 餓漢式&#xff08;Eager Initialization&#xff09; public class EagerSingleton {// 類加載時就初始化p…

    數字化零售如何全面優化顧客體驗

    一、引言 數字化零售是互聯網、大數據、人工智能等技術在零售業中的應用&#xff0c;是現代零售業發展的必然趨勢。隨著線上購物、移動支付和全渠道銷售的普及&#xff0c;零售行業發生了顛覆性的變化。數字化零售不僅提高了企業運營效率&#xff0c;更為顧客提供了便捷、個性化…

    rabbitmq 交換機、隊列和消息概念

    RabbitMQ 是一個功能強大的消息中間件&#xff0c;它采用發布-訂閱模式進行消息傳遞。下面為你詳細介紹 RabbitMQ 中交換機、隊列和消息的核心概念。 交換機&#xff08;Exchange&#xff09; 交換機在 RabbitMQ 中扮演著接收生產者發送消息的角色&#xff0c;它會根據特定的…

    記錄一次jenkins slave因為本地安裝多個java版本導致的問題

    今天&#xff0c;使用jenkins打包&#xff0c;發現slave掉線&#xff0c;上對應機器一看&#xff0c;好家伙&#xff0c;slave運行不起來了。命令行&#xff0c;java -vesion. 沒反應&#xff0c;不會是哪個天殺的把java 給卸載了吧&#xff01; 趕緊 where java看下。 還好 ja…

    Java中Redis常用的API及其對應的原始API

    相信大家寫redis的時候經常忘記一些指令吧[狗頭][狗頭]&#xff0c;這里整理了一下 一、 String&#xff08;字符串類型&#xff09; 1.代碼塊 // 設置字符串值 stringRedisTemplate.opsForValue().set("key", "value"); // Redis: SET key value// 設置…

    C#使用ExcelDataReader高效讀取excel文件寫入數據庫

    分享一個庫ExcelDataReader &#xff0c;它專注讀取、支持 .xls/.xlsx、內存優化。 首先安裝NuGet 包 dotnet add package ExcelDataReader dotnet add package System.Text.Encoding.CodePages 編碼 內存優化??&#xff1a;每次僅讀取一行&#xff0c;適合處理百萬級數據…

    雪豹速清APP:高效清理,暢享流暢手機體驗

    在智能手機的日常使用中&#xff0c;隨著時間的推移&#xff0c;手機中會積累大量的垃圾文件&#xff0c;如臨時文件、緩存數據、無用的安裝包等。這些垃圾文件不僅會占用寶貴的存儲空間&#xff0c;還會導致手機運行緩慢&#xff0c;甚至出現卡頓現象。為了解決這一問題&#…

    關于使用v-bind綁定多個屬性值的問題

    背景。自定義表單開發。屬性值過多&#xff0c;都寫死很臃腫而且不方便維護。通過v-bind綁定非常方便。但是問題又來了。改以怎樣的方式處理呢。返回值的格式需要注意 下面是兩張動態處理v-bind屬性的方法。第一張是寫在了方法里面&#xff0c;第二張使用了虛擬屬性。使用虛擬…

    基于CNN的FashionMNIST數據集識別6——DenseNet模型

    源碼 import torch from torch import nn from torchsummary import summary""" DenseNet的核心組件&#xff1a;稠密層(DenseLayer) 實現特征復用機制&#xff0c;每個層的輸出會與所有前序層的輸出在通道維度拼接 """class DenseLayer(nn.Mod…

    MySQL 中 INSERT ... ON DUPLICATE KEY UPDATE 為什么會導致主鍵自增失效?

    最近開發的過程中&#xff0c;使用ai生成代碼&#xff0c;寫了一條這樣的SQL&#xff1a;INSERT … ON DUPLICATE KEY UPDATE&#xff0c;然后發現一個奇怪的現象&#xff1a; 為什么使用這個語法后&#xff0c;自增主鍵&#xff08;AUTO_INCREMENT&#xff09;的值會跳躍甚至…

    jenkins流水線打包vue無權限

    jenkins在使用npm命令進行拉取依賴時,創建目錄會報錯無權限&#xff0c;如下如所示 這是因為npm 出于安全考慮不支持以 root 用戶運行&#xff0c;即使你用 root 用戶身份運行了&#xff0c;npm 會自動轉成一個叫 nobody 的用戶來運行&#xff0c;而這個用戶權限非常低 若需要…

    快速實現golang的grpc服務

    文章目錄 1、安裝服務2、檢查安裝版本情況3、編寫proto文件4、生成代碼5、實現業務邏輯6、創建provider7、測試調用 1、安裝服務 1、protoc安裝 需去官網下載 protobuf 2、命令行安裝protoc-gen-go和protoc-gen-go-grpc $ go install google.golang.org/protobuf/cmd/protoc-…

    C++ 學習 多線程 2025年6月17日18:41:30

    多線程(標準線程庫 <thread>) 創建線程 #include <iostream> #include <thread>void hello() {std::cout << "Hello from thread!\n"; }int main() {// 創建線程并執行 hello() std::thread t(hello); //線程對象&#xff0c;傳入可調用對…

    常見的測試工具及分類

    Web測試工具是保障Web應用質量的核心支撐&#xff0c;根據測試類型&#xff08;功能、性能、安全、自動化等&#xff09;和場景需求&#xff0c;可分為多個類別。以下從??八大核心測試類型??出發&#xff0c;梳理常見工具及其特點、適用場景&#xff1a; ??一、功能測試工…

    七牛存儲sdk在springboot完美集成和應用 七牛依賴 自動化配置

    文章目錄 概要依賴配置屬性配置類配置文件業務層控制層運行結果亮點 概要 七牛存儲很便宜的&#xff0c;在使用項目的用好官方封裝好的sdk&#xff0c;結合springboot去使用很方便&#xff0c;我本地用的是springoot3spring-boot-autoconfigure 依賴 <dependency><…

    Java相關-鏈表-設計鏈表-力扣707

    你可以選擇使用單鏈表或者雙鏈表&#xff0c;設計并實現自己的鏈表。 單鏈表中的節點應該具備兩個屬性&#xff1a;val 和 next 。val 是當前節點的值&#xff0c;next 是指向下一個節點的指針/引用。 如果是雙向鏈表&#xff0c;則還需要屬性 prev 以指示鏈表中的上一個節點…

    C# 關于LINQ語法和類型的使用

    常用語法&#xff0c;具體問題具體分析 1. Select2. SelectMany3. Where4. Take5. TakeWhile6. SkipWhile7. Join8. GroupJoin9. OrderBy10. OrderByDescending11. ThenBy12. Concat13. Zip14. Distinct15. Except16. Union17. Intersect18. Concat19. Reverse20. SequenceEqua…

    華為OD-2024年E卷-小明周末爬山[200分] -- python

    問題描述&#xff1a; 題目描述 周末小明準備去爬山鍛煉&#xff0c;0代表平地&#xff0c;山的高度使用1到9來表示&#xff0c;小明每次爬山或下山高度只能相差k及k以內&#xff0c;每次只能上下左右一個方向上移動一格&#xff0c;小明從左上角(0,0)位置出發 輸入描述 第一行…