一個月速刷leetcodeHOT100 day08 兩道DP題 一道子串

和為k的子數組

中等
提示
給你一個整數數組?nums?和一個整數?k?,請你統計并返回?該數組中和為?k?的子數組的個數?。
子數組是數組中元素的連續非空序列。
示例 1:
**輸入:**nums = [1,1,1], k = 2
**輸出:**2
示例 2:
**輸入:**nums = [1,2,3], k = 3
**輸出:**2
思路: 前綴和 加哈希表

function subarraySum(nums, k) {
let count = 0, sum = 0;
// 哈希表,鍵為前綴和,值為出現次數
const map = new Map([[0, 1]]);
for (const num of nums) {
sum += num;
// 查詢前綴和為 sum - k 的出現次數
if (map.has(sum - k)) {
count += map.get(sum - k);
}
// 將前綴和加入哈希表
map.set(sum, (map.get(sum) || 0) + 1);
}
return count;
}

爬樓梯

假設你正在爬樓梯。需要?n?階你才能到達樓頂。
每次你可以爬?1?或?2?個臺階。你有多少種不同的方法可以爬到樓頂呢?

function climbStairs(n) {if (n <= 2) {return n;}let dp = new Array(n + 1).fill(0);dp[1] = 1;dp[2] = 2;for (let i = 3; i <= n; i++) {dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];}

楊輝三角

給定一個非負整數 numRows,生成「楊輝三角」的前 numRows 行。

示例 1:

輸入: numRows = 5

輸出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

輸入: numRows = 1

輸出: [[1]]

var generate = function(numRows) {if(numRows === 1){return [[1]]}if(numRows === 2){return [[1],[1,1]]}let triangle = [];for (let i = 0; i < numRows; i++) {triangle[i] = new Array(i + 1);triangle[i][0] = 1; // 每行的第一列為1triangle[i][i] = 1; // 每行的最后一列為1for (let j = 1; j < i; j++) {triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];}}return triangle;};

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

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

相關文章

集合、Collection接口特點和常用方法

1、集合介紹 對于保存多個數據使用的是數組&#xff0c;那么數組有不足的地方。比如&#xff0c; 長度開始時必須指定&#xff0c;而且一旦制定&#xff0c;不能更改。 保存的必須為同一類型的元素。 使用數組進行增加/刪除元素的示意代碼&#xff0c;也就是比較麻煩。 為…

一種簡單實用的ollvm反混淆的方案與源碼

我是一名從事反欺詐&風控&設備指紋相關的工作&#xff0c;最近對ollvm的如何逆向的問題進行了學習與思考。 ollvm是一個開源免費的so混淆工具&#xff0c;對于逆向的小白來說簡直是災難性的存在。 這個例子是超簡單&#xff0c;我想每個人都可以學會跟掌握&#xff0c;…

RustGUI學習(iced/iced_aw)之擴展小部件(二十五):如何使用tab部件來創建tab多頁面切換?

前言 本專欄是學習Rust的GUI庫iced的合集,將介紹iced涉及的各個小部件分別介紹,最后會匯總為一個總的程序。 iced是RustGUI中比較強大的一個,目前處于發展中(即版本可能會改變),本專欄基于版本0.12.1. 概述 這是本專欄的第二十五篇,主要講述tab頁面切換部件的使用,會結…

[linux] bash中的單引號(‘)和雙引號(“)

在命令行中&#xff0c;單引號()和雙引號(")在某些情況下會有不同的效果&#xff0c;尤其是在涉及bash變量和特殊字符的解析時。在你給出的兩個命令中&#xff1a; ps -ef|grep "tokenize"|grep -v grep|awk {print $2} 和 ps -ef|grep "tokenize"…

PCL點云邊界提取——源碼解析

文章目錄 一、概述二、PCL邊緣檢測源碼定位過程1、初始化2、檢查輸入點云是否稠密3、迭代處理每個點4、輸出三、修改后的過程調用一、概述 在PCL中集成了一個非常經典的點云邊緣檢測算法,這個算法也在 PCL點云邊界提取這篇博客中講解了。該文章只介紹了AC算法的原理及接口調用…

hook中useContext到底怎么用

語法: somecontext createContext(defaultValue); 作用: 避免了組件嵌套太深, 頂層變量層層傳遞的麻煩. 如何消費頂層數據 第一步: 用createContext聲明一個context上下文變量 import { createContext } from react;export const GlobalContext createContext({} as any);…

面試問題小結

說說你的項目&#xff0c;從里面學到啥了&#xff08;隨便說&#xff09; CAS 線程池 的各個方面 線程咋創建&#xff08;4種方式&#xff09; 說一下聚集索引和非聚集索引 50w男 50w女 &#xff0c;在B樹中咋存儲的&#xff08;類似下面的圖&#xff0c;變通一下就行了&a…

本是夢中人,常作花下客。心中自往來,知我有幾個。

我們總是喜歡拿“順其自然”來敷衍人生道路上的荊棘坎坷&#xff0c;卻很少承認&#xff0c;真正的順其自然&#xff0c; 其實是竭盡所能之后的不強求&#xff0c; 而非兩手一攤的不作為。 一花凋零荒蕪不了整個春天&#xff0c; 一次挫折也荒廢不了整個人生。 多年后&#x…

近臨算法(個人總結版)

背景 近鄰算法&#xff08;Nearest Neighbor Algorithm&#xff09;是一種基本但非常有效的分類和回歸方法。最早由Fix和Hodges在1951年提出&#xff0c;經過幾十年的發展和改進&#xff0c;已成為數據挖掘、模式識別和機器學習領域的重要工具。近鄰算法基于相似性原則&#x…

通過el-tree自定義渲染網頁版工作目錄,實現鼠標懸浮顯示完整名稱、用icon區分文件和文件夾等需求

目錄 一、通過el-tree自定義渲染網頁版工作目錄 1.1、需求介紹 1.2、使用el-tree生成文檔目錄 1.2.1、官方基礎用法 ①效果 ②代碼&#xff1a; 1.2.2、自定義文檔目錄&#xff08;實現鼠標懸浮顯示完整名稱、用icon區分文件和文件夾&#xff09; ①效果&#xff08;直接效…

find 幾招在 Linux 中高效地查找目錄

1. 介紹 在 Linux 操作系統中&#xff0c;查找目錄是一項常見的任務。無論是系統管理員還是普通用戶&#xff0c;都可能需要查找特定的目錄以執行各種操作&#xff0c;如導航文件系統、備份數據、刪除文件等。Linux 提供了多種命令和工具來幫助我們在文件系統中快速找到目標目…

淺談后端整合Springboot框架后操作基礎配置

boot基礎配置 現在不訪問端口8080 可以嗎 我們在默認啟動的時候訪問的是端口號8080 基于屬性配置的 現在boot整合導致Tomcat服務器的配置文件沒了 我們怎么去修改Tomcat服務器的配置信息呢 配置文件中的配置信息是很多很多的... 復制工程 保留工程的基礎結構 抹掉原始…

樸素貝葉斯+SMSSpamCollections

1. 打開 Jupyter 后&#xff0c;在工作目錄中&#xff0c;新建一個文件夾命名為 Test01 &#xff0c;并且在文件夾中導入數據 集。在網頁端界面點擊 “upload” 按鈕&#xff0c;在彈出的界面中選擇要導入的數據集。然后數據集出現 在 jupyter 文件目錄中&#xff0c;此時…

Vue.js Promise 與 async/await 的比較

在現代 Web 開發中&#xff0c;異步操作是不可避免的。在處理異步數據獲取時&#xff0c;開發人員通常會使用 Promise 或 async/await。雖然兩者都可以實現相同的功能&#xff0c;但它們在代碼風格、可讀性和錯誤處理等方面有所不同。本文將對這兩種方法進行比較&#xff0c;并…

初識Qt:從Hello world到對象樹的深度解析

Qt中的對象樹深度解析 Hello world1.圖形化界面創建命令行式創建在棧上創建在堆上創建為什么傳文本需要QString&#xff0c;std::string不行嗎&#xff1f;那為什么要傳入this指針&#xff1f;為什么new后不用顯示調用delete函數呢&#xff0c;不會造成內存泄漏問題嗎&#xff…

python:__class_getitem__使用以及cached_property源碼分析

python&#xff1a;__class_getitem__使用以及cached_property源碼分析 1 前言 Python中如何模擬泛型類型&#xff1f; 當使用類型標注時&#xff0c;使用 Python 的方括號標記來形參化一個 generic type 往往會很有用處。 例如&#xff0c;list[int] 這樣的標注可以被用來表…

深入 OpenFeign:探索緩存、QueryMap、MatrixVariable 和 CollectionFormat 的高級用法以實現優雅的遠程調用

免費多模型AI網站,支持豆包、GPT-4o、谷歌Gemini等AI模型&#xff0c;無限制使用&#xff0c;快去白嫖&#x1f449;海鯨AI 一、OpenFeign簡介 OpenFeign 是一個聲明式的 HTTP 客戶端&#xff0c;它使得我們可以通過簡單的注解和接口定義來調用遠程 HTTP 服務。與傳統的 HTTP …

K8S集群再搭建

前述&#xff1a;總體是非常簡單的&#xff0c;就是過程繁瑣&#xff0c;不過都是些重復的操作 master成員: [controller-manager, scheduler, api-server, etcd, proxy,kubelet] node成員: [kubelet, proxy] master要修改的配置文件有 1. vi /etc/etcd/etcd.conf # 數…

Mokito的一些API

Mockito是一個Java單元測試框架&#xff0c;它允許開發者創建和配置模擬對象&#xff08;mock objects&#xff09;&#xff0c;以便在隔離的環境中測試代碼&#xff0c;尤其是當實際對象難以構造或其行為不確定時。下面是一些核心的Mockito API及其使用場景和代碼示例。 基礎…

wordpress教程視頻 wordpress教程網盤 wordpress教程推薦wordpress教程網

WordPress&#xff0c;作為一款強大且靈活的開源內容管理系統&#xff0c;已成為許多網站開發者與運營者的首選。其強大的功能、豐富的插件以及易于上手的特點&#xff0c;使得無論是初學者還是專業開發者都能輕松構建出個性化的網站。然而&#xff0c;對于初學者來說&#xff…