代碼隨想錄算法訓練營第36期DAY41

DAY41

動態規劃理論基礎

還差閆氏分析法沒學完。見B站收藏夾。

前兩題學習初始化方式就好vector<int> dp(N+1);

509斐波那契數

簡單。

  1. class?Solution?{
  2. public:
  3. ????int?fib(int?N)?{
  4. ????????if?(N?<=?1)?return?N;
  5. ????????int?dp[2];
  6. ????????dp[0]?=?0;
  7. ????????dp[1]?=?1;
  8. ????????for?(int?i?=?2;?i?<=?N;?i++)?{
  9. ????????????int?sum?=?dp[0]?+?dp[1];
  10. ????????????dp[0]?=?dp[1];
  11. ????????????dp[1]?=?sum;
  12. ????????}
  13. ????????return?dp[1];
  14. ????}
  15. };

70爬樓梯

簡單。

  1. class?Solution?{
  2. public:
  3. ????int?climbStairs(int?n)?{
  4. ????????if?(n?<=?1)?return?n;
  5. ????????int?dp[3];
  6. ????????dp[1]?=?1;
  7. ????????dp[2]?=?2;
  8. ????????for?(int?i?=?3;?i?<=?n;?i++)?{
  9. ????????????int?sum?=?dp[1]?+?dp[2];
  10. ????????????dp[1]?=?dp[2];
  11. ????????????dp[2]?=?sum;
  12. ????????}
  13. ????????return?dp[2];
  14. ????}
  15. };

746使用最小花費爬樓梯

不會做了,實在想不出來。

代碼隨想錄官方解答:

現在會了。主要是狀態轉移的形式,學一下:

  1. class?Solution?{
  2. public:
  3. ????int?minCostClimbingStairs(vector<int>&?cost)?{
  4. ????if(cost.size()==2)?return?min(cost[0],cost[1]);
  5. ????vector<int>?dp(cost.size()+1);
  6. ????dp[0]=0,dp[1]=0;
  7. ????for(int?i=2;i<dp.size();i++){
  8. ????????dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
  9. ????}
  10. ????return?dp[dp.size()-1];
  11. ????}
  12. };

54螺旋矩陣

廈大保研夏令營考過,練一練。

終于過了,卡在記錄該位置是否已經走過,用unordered_set, unordered_map顯然都不行。想復雜了,用二維數組bool就好了。

  1. ????class?Solution?{
  2. ????public:
  3. ????????vector<int>?spiralOrder(vector<vector<int>>&?matrix)?{
  4. ????????????vector<int>?res;
  5. ????????????int?dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
  6. ????????????vector<vector<bool>>?flag(matrix.size(),vector<bool>(matrix[0].size(),false));
  7. ????????????int?size=matrix.size()*matrix[0].size();
  8. ????????????for(int?x=0,y=0,d=0,k=1;k<=size;k++){
  9. ????????????????flag[x][y]=true;
  10. ????????????????res.push_back(matrix[x][y]);
  11. ????????????????int?a=x+dx[d],b=y+dy[d];
  12. ????????????????if(a<0||a>=matrix.size()||b<0||b>=matrix[0].size()||flag[a][b]){
  13. ????????????????????d=(d+1)%4;
  14. ????????????????????a=x+dx[d],b=y+dy[d];
  15. ????????????????}
  16. ????????????????x=a,y=b;
  17. ????????????}
  18. ????????????return?res;
  19. ????????}
  20. ????};

59螺旋矩陣ii

廈大保研夏令營考過,練一練。ACWING語法基礎課做過,再寫一遍:

還是寫不出來,不知道該怎么利用偏移量去更新。

加油吧:

  1. class?Solution?{
  2. public:
  3. ????vector<vector<int>>?generateMatrix(int?n)?{
  4. ????int?dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
  5. ????vector<vector<int>>?res(n,vector<int>(n,0));
  6. ????int?mi=n*n;
  7. ????for(int?x=0,y=0,d=0,k=1;k<=mi;k++){
  8. ????????res[x][y]=k;
  9. ????????int?a=x+dx[d],b=y+dy[d];
  10. ????????//撞墻或者走過了,不要漏了“走過”
  11. ????????if(a<0||a>n-1||b<0||b>n-1||res[a][b]){
  12. ????????????d=(d+1)%4;
  13. ????????????a=x+dx[d],b=y+dy[d];
  14. ????????}
  15. ????????x=a,y=b;
  16. ????}
  17. ????return?res;
  18. ????}
  19. };

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

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

相關文章

plt畫圖中文亂碼

1、使用font_manager的FontProperties解決 通過FontProperties來設置字符及大小&#xff0c;來解決中文顯示的問題&#xff0c;代碼如下&#xff1a; import matplotlib import matplotlib.pyplot as pltpath "..\simsun.ttc"#改成你自己的文件路徑 font FontProp…

【物聯網實戰項目】STM32C8T6+esp8266/mqtt+dht11+onenet+uniapp

一、實物圖 前端uniapp效果圖&#xff08;實現與onenet同步更新數據&#xff09; 首先要確定接線圖和接線順序&#xff1a; 1、stm32c8t6開發板連接stlinkv2下載線 ST-LINK V2STM323.3V3.3VSWDIOSWIOSWCLKSWCLKGNDGND 2、ch340串口連接底座&#xff08;注意RXD和TXD的連接方式…

NSS題目練習4

[LitCTF 2023]1zjs 打開后是一個游戲&#xff0c;用dirsearch掃描&#xff0c;什么都沒發現 查看源代碼搜索flag&#xff0c;發現沒有什么用 搜索php&#xff0c;訪問 出現一堆符號&#xff0c;看樣子像是jother編碼 解碼得到flag&#xff0c;要刪掉[] [LitCTF 2023]Http pro …

37、Flink 的窗口函數(Window Functions)詳解

窗口函數&#xff08;Window Functions&#xff09; a&#xff09;概述 定義了 window assigner 之后&#xff0c;需要指定當窗口觸發之后&#xff0c;如何計算每個窗口中的數據&#xff0c; 即 window function。 窗口函數有三種&#xff1a;ReduceFunction、AggregateFunc…

嵌入式學習記錄5.27(c++基礎1)

目錄 一.C和C的區別 二.輸入輸出流類 2.1輸出cout 2.2輸入cin 三.命名空間 2.1使用命名空間中的標識符 2.2命名空間中聲明函數 2.3命名沖突問題 2.4匿名空間 2.5命名空間添加&#xff0c;嵌套&#xff0c;重命名 四.字符串的使用 4.1string類 4.2C風格和C風格字符串…

LeetCode27.移除元素

題目鏈接&#xff1a; 27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; 思路分析&#xff1a;同樣屬于經典的雙指針移動問題&#xff0c;要掌握固定的思路即可。 算法分析&#xff1a;這個題目可以這樣處理&#xff0c;我們把所有非val 的元素都向前移動&#xff0c;把…

Java面試八股之線程池是怎么實現的

線程池是怎么實現的 線程池是一種基于池化技術的線程管理方式&#xff0c;通過預先創建一定數量的線程并保持在池中待命&#xff0c;從而在有任務來臨時能夠快速分配線程處理任務&#xff0c;而無需頻繁創建和銷毀線程&#xff0c;以此達到提升系統性能、減少資源消耗的目的。…

推薦《從零開始大模型開發與微調》

大模型是深度學習是當前AI和NLP研究與產業中最重要的方向之一。 本書用PyTorch 2.0作為學習大模型的基本框架&#xff0c;以ChatGLM為例詳細講解大模型的基本理論、算法、程序實現、應用實戰以及微調技術&#xff0c;為讀者揭示大模型開發技術。 《從零開始大模型開發與微調&…

兩個數組的交集-力扣

想到的解法是使用兩個哈希表&#xff0c;s1用來統計nums1中出現過的數字&#xff0c;然后遍歷nums2數組&#xff0c;當能夠在s1中查找到nums2的元素時&#xff0c;將這個元素添加到s2中&#xff0c;最后遍歷s2&#xff0c;將其中的元素添加到返回數組中。 但最開始寫時&#xf…

外星人存在與否......----小話外星人(1)

前一段時間&#xff0c;看了好多關于UFO、外星人、宇宙、遠古外星人的視頻和電子書&#xff0c;最后發現&#xff0c;這樣的東西還是不要看多為好&#xff0c;搞得好像這些是真的似的&#xff0c;有時睡覺會被意外驚醒&#xff0c;想多了...... 1、外星人存在嗎 不管有多少UFO的…

Windows10映射網絡驅動器之后不顯示映射盤

目錄 背景解決步驟1、按 Windows R 打開運行2、打開注冊表編輯器3、 System上新建-- DWORD(32bit)4、對新建的文件重命名5、將EnableLinkedConnections的數值改為16、退出注冊表編輯器&#xff0c;重啟系統。 知識擴展斷開連接備份注冊表 背景 目前有一臺NAS服務器,和一臺lin…

Vuex 頁面刷新數據丟失怎么解決

當Vuex中的數據在頁面刷新后丟失時&#xff0c;這通常是因為Vuex的狀態數據是保存在運行內存中的&#xff0c;頁面刷新會導致Vue實例重新加載&#xff0c;進而Vuex中的數據被重置為初始狀態。為了解決這個問題&#xff0c;可以采取以下幾種方法&#xff1a; 1. 使用瀏覽器的本…

工廠模式的三種實現方式

文章目錄 1.引出工廠模式具體需求 2.傳統模式1.類圖2.目錄結構3.pizzastore 用于設計pizza1.Pizza.java 抽象的Pizza類型2.CheesePizaa.java CheesePizaa3.GreekPizza.java GreekPizza 4.order 用于訂購和制作pizza1.OrderPizza.java 制作pizza2.PizzaStore.java 訂購pizza 5.優…

【Redis】 關于列表類型

文章目錄 &#x1f343;前言&#x1f340;常見操作命令介紹&#x1f6a9;lpush&#x1f6a9;lpushx&#x1f6a9;rpush&#x1f6a9;rpushx&#x1f6a9;lrange&#x1f6a9;lpop&#x1f6a9;rpop&#x1f6a9;lindex&#x1f6a9;linsert&#x1f6a9;llen&#x1f6a9;lrem&…

“按摩”科技?

都說A股股民是特別善于學習的&#xff0c;這不市場又現新概念——“按摩科技”&#xff0c;成立僅6年&#xff0c;把上門按摩干到35億營收也是沒誰了&#xff0c;現在號稱有1000萬用戶&#xff0c;3萬家入駐商戶數的按摩平臺&#xff0c;難道就憑借2.5萬名女技師&#xff0c;活…

【Django】中間件實現鉤子函數預處理和后處理,局部裝飾視圖函數

在app文件夾里新建middleware.py繼承MiddlewareMixin&#xff0c; 編寫中間件類&#xff0c;重寫process_request、process_response鉤子函數 from django.http import HttpRequest, HttpResponse from django.utils.decorators import decorator_from_middleware from django…

關于pytest中用例名稱使用中文亂碼的解決

場景&#xff1a;使用pytest.mark.parametrize裝飾器為用例自定義名稱時&#xff0c;運行顯示亂碼。如下圖所示&#xff1a; 解決方案&#xff1a; 1.在根目錄 pytest.ini中增加一行代碼 [pytest] disable_test_id_escaping_and_forfeit_all_rights_to_community_supportTrue…

NAT 網絡轉換

NAT(Network Address Translation) 網絡地址轉換 0x01 NAT 簡介 為什么要使用 NAT IPv4 網絡地址緊缺&#xff0c;從而出現了私有網段&#xff0c;來補充地址&#xff0c;但私有網段不課訪問 internet 所以出現了 NAT 地址轉換&#xff0c;將私有地址&#xff0c;轉換為公網 I…

一口氣看完es(上)

此系列博客分為上中下3篇&#xff1a;上篇是關于es的概念和對數據的增刪改操作&#xff0c;中篇是對數據的查詢、對搜索結果進行處理操作&#xff0c;下篇是介紹怎么在Java代碼中調用和操作es。 基本概念 1、es是什么&#xff1f;有什么作用&#xff1f; es全名是elasticsea…

關于0成本部署個人博客

分享一個文章關于零成本搭建個人博客 參考&#xff1a;‘關于部署博客hexoshokagithub的流程以及問題’ - 關于博客部署 | XiaoYang Guo Welcome to Guo Xiaoyangs personal blog 歡迎來到郭曉陽的個人博客 (1330303.github.io) 這個博主講的流程很全&#xff0c;而且回答也…