From 812e9bab668697e018453694eab480f084d2c75a Mon Sep 17 00:00:00 2001 From: Ainevsia Date: Fri, 1 Sep 2023 07:47:44 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20Ainevsia?= =?UTF-8?q?/Leetcode-Rust@cb020718e6969afeeb5f783ebac45f080b9f9025=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 2 +- day1.html | 2 +- day1/lc27.html | 2 +- day1/lc704.html | 2 +- day10.html | 2 +- day10/lc232.html | 2 +- day10/lc255.html | 2 +- day11.html | 2 +- day11/lc1047.html | 2 +- day11/lc150.html | 2 +- day11/lc20.html | 2 +- day12.html | 2 +- day13.html | 2 +- day13/lc239.html | 2 +- day13/lc347.html | 2 +- day14.html | 2 +- day14/lc144.html | 2 +- day15.html | 2 +- day15/lc101.html | 2 +- day15/lc102.html | 2 +- day15/lc226.html | 2 +- day16.html | 2 +- day16/lc104.html | 2 +- day16/lc111.html | 2 +- day16/lc222.html | 2 +- day17.html | 2 +- day17/lc110.html | 2 +- day17/lc257.html | 2 +- day17/lc404.html | 2 +- day18.html | 2 +- day18/lc106.html | 2 +- day18/lc112.html | 2 +- day18/lc513.html | 2 +- day19.html | 2 +- day2.html | 2 +- day2/lc209.html | 2 +- day2/lc59.html | 2 +- day2/lc977.html | 2 +- day20.html | 2 +- day20/lc617.html | 2 +- day20/lc654.html | 2 +- day20/lc700.html | 2 +- day20/lc98.html | 2 +- day21.html | 2 +- day21/lc236.html | 2 +- day21/lc501.html | 2 +- day21/lc530.html | 2 +- day22.html | 2 +- day22/lc235.html | 2 +- day22/lc450.html | 2 +- day22/lc701.html | 2 +- day23.html | 2 +- day23/lc108.html | 2 +- day23/lc538.html | 2 +- day23/lc669.html | 2 +- day24.html | 2 +- day24/lc77.html | 2 +- day25.html | 2 +- day25/lc17.html | 2 +- day25/lc216.html | 2 +- day27.html | 2 +- day27/lc131.html | 2 +- day27/lc39.html | 2 +- day27/lc40.html | 2 +- day28.html | 2 +- day28/lc78.html | 2 +- day28/lc90.html | 2 +- day28/lc93.html | 2 +- day29.html | 2 +- day29/lc46.html | 2 +- day29/lc47.html | 2 +- day29/lc491.html | 2 +- day3.html | 2 +- day3/lc203.html | 2 +- day3/lc206.html | 2 +- day3/lc707.html | 2 +- day30.html | 2 +- day30/332.html | 2 +- day30/lc37.html | 2 +- day30/lc51.html | 2 +- day31.html | 2 +- day31/lc376.html | 2 +- day31/lc455.html | 2 +- day31/lc53.html | 2 +- day32.html | 2 +- day32/lc122.html | 2 +- day32/lc45.html | 2 +- day32/lc55.html | 2 +- day34.html | 2 +- day34/lc1005.html | 2 +- day34/lc134.html | 2 +- day34/lc135.html | 2 +- day35.html | 2 +- day35/lc406.html | 2 +- day35/lc452.html | 2 +- day35/lc860.html | 2 +- day36.html | 2 +- day36/lc435.html | 2 +- day36/lc56.html | 2 +- day36/lc763.html | 2 +- day37.html | 2 +- day37/lc738.html | 2 +- day37/lc968.html | 2 +- day38.html | 2 +- day38/lc509.html | 2 +- day38/lc70.html | 2 +- day38/lc746.html | 2 +- day39.html | 2 +- day39/lc62.html | 2 +- day39/lc63.html | 2 +- day4.html | 2 +- day4/lc02.07.html | 2 +- day4/lc142.html | 2 +- day4/lc19.html | 2 +- day4/lc24.html | 2 +- day41.html | 2 +- day41/lc343.html | 2 +- day41/lc96.html | 2 +- day42.html | 2 +- day42/lc416.html | 2 +- day43.html | 2 +- day43/lc1049.html | 2 +- day43/lc474.html | 2 +- day43/lc494.html | 2 +- day44.html | 2 +- day44/lc377.html | 2 +- day44/lc518.html | 2 +- day45.html | 2 +- day45/lc279.html | 2 +- day45/lc322.html | 2 +- day45/lc70.html | 2 +- day46.html | 6 +- day46/lc139.html | 241 +++++++++++++++++++++++++++++++ day48.html | 235 ++++++++++++++++++++++++++++++ day48/lc198.html | 239 ++++++++++++++++++++++++++++++ day48/lc213.html | 250 ++++++++++++++++++++++++++++++++ day48/lc337.html | 254 ++++++++++++++++++++++++++++++++ day49.html | 231 +++++++++++++++++++++++++++++ day49/lc121.html | 237 ++++++++++++++++++++++++++++++ day49/lc122.html | 252 ++++++++++++++++++++++++++++++++ day5.html | 2 +- day50.html | 232 ++++++++++++++++++++++++++++++ day50/lc123.html | 246 +++++++++++++++++++++++++++++++ day50/lc188.html | 239 ++++++++++++++++++++++++++++++ day51.html | 235 ++++++++++++++++++++++++++++++ day51/lc309.html | 240 +++++++++++++++++++++++++++++++ day51/lc714.html | 237 ++++++++++++++++++++++++++++++ day52.html | 237 ++++++++++++++++++++++++++++++ day52/lc300.html | 237 ++++++++++++++++++++++++++++++ day52/lc674.html | 236 ++++++++++++++++++++++++++++++ day52/lc718.html | 240 +++++++++++++++++++++++++++++++ day6.html | 2 +- day6/lc1.html | 2 +- day6/lc202.html | 2 +- day6/lc242.html | 2 +- day6/lc349.html | 2 +- day7.html | 2 +- day7/lc15.html | 2 +- day7/lc18.html | 2 +- day7/lc383.html | 2 +- day7/lc454.html | 2 +- day8.html | 2 +- day8/lc151.html | 2 +- day8/lc344.html | 2 +- day8/lc541.html | 2 +- day8/offer5.html | 2 +- day8/offer58.html | 2 +- day9.html | 2 +- day9/lc28.html | 2 +- day9/lc459.html | 2 +- index.html | 2 +- print.html | 360 +++++++++++++++++++++++++++++++++++++++++++++- remains.html | 6 +- searchindex.js | 2 +- searchindex.json | 2 +- 175 files changed, 4837 insertions(+), 161 deletions(-) create mode 100644 day46/lc139.html create mode 100644 day48.html create mode 100644 day48/lc198.html create mode 100644 day48/lc213.html create mode 100644 day48/lc337.html create mode 100644 day49.html create mode 100644 day49/lc121.html create mode 100644 day49/lc122.html create mode 100644 day50.html create mode 100644 day50/lc123.html create mode 100644 day50/lc188.html create mode 100644 day51.html create mode 100644 day51/lc309.html create mode 100644 day51/lc714.html create mode 100644 day52.html create mode 100644 day52/lc300.html create mode 100644 day52/lc674.html create mode 100644 day52/lc718.html diff --git a/404.html b/404.html index 246bb79..7121765 100644 --- a/404.html +++ b/404.html @@ -84,7 +84,7 @@ diff --git a/day1.html b/day1.html index 1d0ccce..444e389 100644 --- a/day1.html +++ b/day1.html @@ -83,7 +83,7 @@ diff --git a/day1/lc27.html b/day1/lc27.html index e4b56ec..c8045d7 100644 --- a/day1/lc27.html +++ b/day1/lc27.html @@ -83,7 +83,7 @@ diff --git a/day1/lc704.html b/day1/lc704.html index 47158f4..5f38519 100644 --- a/day1/lc704.html +++ b/day1/lc704.html @@ -83,7 +83,7 @@ diff --git a/day10.html b/day10.html index 1c911d2..03456b7 100644 --- a/day10.html +++ b/day10.html @@ -83,7 +83,7 @@ diff --git a/day10/lc232.html b/day10/lc232.html index 0ac582b..9d8f016 100644 --- a/day10/lc232.html +++ b/day10/lc232.html @@ -83,7 +83,7 @@ diff --git a/day10/lc255.html b/day10/lc255.html index 697951d..552fadf 100644 --- a/day10/lc255.html +++ b/day10/lc255.html @@ -83,7 +83,7 @@ diff --git a/day11.html b/day11.html index 8a03012..7119df7 100644 --- a/day11.html +++ b/day11.html @@ -83,7 +83,7 @@ diff --git a/day11/lc1047.html b/day11/lc1047.html index b99bb14..2d6d329 100644 --- a/day11/lc1047.html +++ b/day11/lc1047.html @@ -83,7 +83,7 @@ diff --git a/day11/lc150.html b/day11/lc150.html index 5e2169a..68197b2 100644 --- a/day11/lc150.html +++ b/day11/lc150.html @@ -83,7 +83,7 @@ diff --git a/day11/lc20.html b/day11/lc20.html index 8fd594c..5535373 100644 --- a/day11/lc20.html +++ b/day11/lc20.html @@ -83,7 +83,7 @@ diff --git a/day12.html b/day12.html index a062d47..73300cb 100644 --- a/day12.html +++ b/day12.html @@ -83,7 +83,7 @@ diff --git a/day13.html b/day13.html index f167848..16e4a0b 100644 --- a/day13.html +++ b/day13.html @@ -83,7 +83,7 @@ diff --git a/day13/lc239.html b/day13/lc239.html index 517252c..300010d 100644 --- a/day13/lc239.html +++ b/day13/lc239.html @@ -83,7 +83,7 @@ diff --git a/day13/lc347.html b/day13/lc347.html index d014708..07bb674 100644 --- a/day13/lc347.html +++ b/day13/lc347.html @@ -83,7 +83,7 @@ diff --git a/day14.html b/day14.html index 2fc1f4f..513ecdc 100644 --- a/day14.html +++ b/day14.html @@ -83,7 +83,7 @@ diff --git a/day14/lc144.html b/day14/lc144.html index 8e6f446..6131725 100644 --- a/day14/lc144.html +++ b/day14/lc144.html @@ -83,7 +83,7 @@ diff --git a/day15.html b/day15.html index a6a2380..343547e 100644 --- a/day15.html +++ b/day15.html @@ -83,7 +83,7 @@ diff --git a/day15/lc101.html b/day15/lc101.html index da9ad5b..3276e7e 100644 --- a/day15/lc101.html +++ b/day15/lc101.html @@ -83,7 +83,7 @@ diff --git a/day15/lc102.html b/day15/lc102.html index 71e3a4b..9084737 100644 --- a/day15/lc102.html +++ b/day15/lc102.html @@ -83,7 +83,7 @@ diff --git a/day15/lc226.html b/day15/lc226.html index 8af7942..0e8e338 100644 --- a/day15/lc226.html +++ b/day15/lc226.html @@ -83,7 +83,7 @@ diff --git a/day16.html b/day16.html index 159ae5d..1845168 100644 --- a/day16.html +++ b/day16.html @@ -83,7 +83,7 @@ diff --git a/day16/lc104.html b/day16/lc104.html index a3ed8fc..98ca8e5 100644 --- a/day16/lc104.html +++ b/day16/lc104.html @@ -83,7 +83,7 @@ diff --git a/day16/lc111.html b/day16/lc111.html index 7d02c78..8f6807e 100644 --- a/day16/lc111.html +++ b/day16/lc111.html @@ -83,7 +83,7 @@ diff --git a/day16/lc222.html b/day16/lc222.html index 7fedb0f..003b027 100644 --- a/day16/lc222.html +++ b/day16/lc222.html @@ -83,7 +83,7 @@ diff --git a/day17.html b/day17.html index 77d98ca..d3c3fba 100644 --- a/day17.html +++ b/day17.html @@ -83,7 +83,7 @@ diff --git a/day17/lc110.html b/day17/lc110.html index 3cb9382..68ca9d7 100644 --- a/day17/lc110.html +++ b/day17/lc110.html @@ -83,7 +83,7 @@ diff --git a/day17/lc257.html b/day17/lc257.html index 91b1c38..401c6e0 100644 --- a/day17/lc257.html +++ b/day17/lc257.html @@ -83,7 +83,7 @@ diff --git a/day17/lc404.html b/day17/lc404.html index 272ea3c..ada2d8d 100644 --- a/day17/lc404.html +++ b/day17/lc404.html @@ -83,7 +83,7 @@ diff --git a/day18.html b/day18.html index b41f7bd..0c7f5d5 100644 --- a/day18.html +++ b/day18.html @@ -83,7 +83,7 @@ diff --git a/day18/lc106.html b/day18/lc106.html index cbda39d..813532d 100644 --- a/day18/lc106.html +++ b/day18/lc106.html @@ -83,7 +83,7 @@ diff --git a/day18/lc112.html b/day18/lc112.html index 375748a..22899d0 100644 --- a/day18/lc112.html +++ b/day18/lc112.html @@ -83,7 +83,7 @@ diff --git a/day18/lc513.html b/day18/lc513.html index 984e911..cc118fc 100644 --- a/day18/lc513.html +++ b/day18/lc513.html @@ -83,7 +83,7 @@ diff --git a/day19.html b/day19.html index 47ab164..033a269 100644 --- a/day19.html +++ b/day19.html @@ -83,7 +83,7 @@ diff --git a/day2.html b/day2.html index d63fd95..b7081cb 100644 --- a/day2.html +++ b/day2.html @@ -83,7 +83,7 @@ diff --git a/day2/lc209.html b/day2/lc209.html index 6ee0717..ac88c5b 100644 --- a/day2/lc209.html +++ b/day2/lc209.html @@ -83,7 +83,7 @@ diff --git a/day2/lc59.html b/day2/lc59.html index f393771..f5e658a 100644 --- a/day2/lc59.html +++ b/day2/lc59.html @@ -83,7 +83,7 @@ diff --git a/day2/lc977.html b/day2/lc977.html index c836f32..1cfc442 100644 --- a/day2/lc977.html +++ b/day2/lc977.html @@ -83,7 +83,7 @@ diff --git a/day20.html b/day20.html index 5b70dc1..4dac5b2 100644 --- a/day20.html +++ b/day20.html @@ -83,7 +83,7 @@ diff --git a/day20/lc617.html b/day20/lc617.html index b12009e..13f9e3c 100644 --- a/day20/lc617.html +++ b/day20/lc617.html @@ -83,7 +83,7 @@ diff --git a/day20/lc654.html b/day20/lc654.html index 2110a39..c609b6a 100644 --- a/day20/lc654.html +++ b/day20/lc654.html @@ -83,7 +83,7 @@ diff --git a/day20/lc700.html b/day20/lc700.html index 2801ff1..99435dc 100644 --- a/day20/lc700.html +++ b/day20/lc700.html @@ -83,7 +83,7 @@ diff --git a/day20/lc98.html b/day20/lc98.html index d161124..1eb4522 100644 --- a/day20/lc98.html +++ b/day20/lc98.html @@ -83,7 +83,7 @@ diff --git a/day21.html b/day21.html index 2e3debe..5338458 100644 --- a/day21.html +++ b/day21.html @@ -83,7 +83,7 @@ diff --git a/day21/lc236.html b/day21/lc236.html index 6be41e5..3d21133 100644 --- a/day21/lc236.html +++ b/day21/lc236.html @@ -83,7 +83,7 @@ diff --git a/day21/lc501.html b/day21/lc501.html index 26274e2..65f26d9 100644 --- a/day21/lc501.html +++ b/day21/lc501.html @@ -83,7 +83,7 @@ diff --git a/day21/lc530.html b/day21/lc530.html index dbca02c..39f37d5 100644 --- a/day21/lc530.html +++ b/day21/lc530.html @@ -83,7 +83,7 @@ diff --git a/day22.html b/day22.html index 95e94d9..2cb6825 100644 --- a/day22.html +++ b/day22.html @@ -83,7 +83,7 @@ diff --git a/day22/lc235.html b/day22/lc235.html index 4cfd24a..dbe4394 100644 --- a/day22/lc235.html +++ b/day22/lc235.html @@ -83,7 +83,7 @@ diff --git a/day22/lc450.html b/day22/lc450.html index 736d7ba..06952e3 100644 --- a/day22/lc450.html +++ b/day22/lc450.html @@ -83,7 +83,7 @@ diff --git a/day22/lc701.html b/day22/lc701.html index 747c03e..1bd5864 100644 --- a/day22/lc701.html +++ b/day22/lc701.html @@ -83,7 +83,7 @@ diff --git a/day23.html b/day23.html index 37e4d9a..71efc03 100644 --- a/day23.html +++ b/day23.html @@ -83,7 +83,7 @@ diff --git a/day23/lc108.html b/day23/lc108.html index b8f21ea..a807c89 100644 --- a/day23/lc108.html +++ b/day23/lc108.html @@ -83,7 +83,7 @@ diff --git a/day23/lc538.html b/day23/lc538.html index eb8f045..cd29763 100644 --- a/day23/lc538.html +++ b/day23/lc538.html @@ -83,7 +83,7 @@ diff --git a/day23/lc669.html b/day23/lc669.html index 68739ba..7951799 100644 --- a/day23/lc669.html +++ b/day23/lc669.html @@ -83,7 +83,7 @@ diff --git a/day24.html b/day24.html index ad3c278..cabe2ab 100644 --- a/day24.html +++ b/day24.html @@ -83,7 +83,7 @@ diff --git a/day24/lc77.html b/day24/lc77.html index 2319563..2965009 100644 --- a/day24/lc77.html +++ b/day24/lc77.html @@ -83,7 +83,7 @@ diff --git a/day25.html b/day25.html index cd7ca40..4d670ae 100644 --- a/day25.html +++ b/day25.html @@ -83,7 +83,7 @@ diff --git a/day25/lc17.html b/day25/lc17.html index 1375f95..90ad750 100644 --- a/day25/lc17.html +++ b/day25/lc17.html @@ -83,7 +83,7 @@ diff --git a/day25/lc216.html b/day25/lc216.html index 6d18494..3107bc4 100644 --- a/day25/lc216.html +++ b/day25/lc216.html @@ -83,7 +83,7 @@ diff --git a/day27.html b/day27.html index 0646b27..12ddd88 100644 --- a/day27.html +++ b/day27.html @@ -83,7 +83,7 @@ diff --git a/day27/lc131.html b/day27/lc131.html index 04928b3..6870b03 100644 --- a/day27/lc131.html +++ b/day27/lc131.html @@ -83,7 +83,7 @@ diff --git a/day27/lc39.html b/day27/lc39.html index d0025ef..6d0dc46 100644 --- a/day27/lc39.html +++ b/day27/lc39.html @@ -83,7 +83,7 @@ diff --git a/day27/lc40.html b/day27/lc40.html index c97d553..b32fcc8 100644 --- a/day27/lc40.html +++ b/day27/lc40.html @@ -83,7 +83,7 @@ diff --git a/day28.html b/day28.html index a8fe582..7eaa3d5 100644 --- a/day28.html +++ b/day28.html @@ -83,7 +83,7 @@ diff --git a/day28/lc78.html b/day28/lc78.html index 5a4f983..d8b9abc 100644 --- a/day28/lc78.html +++ b/day28/lc78.html @@ -83,7 +83,7 @@ diff --git a/day28/lc90.html b/day28/lc90.html index d778e5d..cbb221a 100644 --- a/day28/lc90.html +++ b/day28/lc90.html @@ -83,7 +83,7 @@ diff --git a/day28/lc93.html b/day28/lc93.html index 0d4cef2..3dd1b88 100644 --- a/day28/lc93.html +++ b/day28/lc93.html @@ -83,7 +83,7 @@ diff --git a/day29.html b/day29.html index f2cb086..f17e13e 100644 --- a/day29.html +++ b/day29.html @@ -83,7 +83,7 @@ diff --git a/day29/lc46.html b/day29/lc46.html index 53e9efc..fe0fb0a 100644 --- a/day29/lc46.html +++ b/day29/lc46.html @@ -83,7 +83,7 @@ diff --git a/day29/lc47.html b/day29/lc47.html index 217174c..5a85508 100644 --- a/day29/lc47.html +++ b/day29/lc47.html @@ -83,7 +83,7 @@ diff --git a/day29/lc491.html b/day29/lc491.html index 5f2e2f0..4d01a51 100644 --- a/day29/lc491.html +++ b/day29/lc491.html @@ -83,7 +83,7 @@ diff --git a/day3.html b/day3.html index 7cf479f..7ad03e3 100644 --- a/day3.html +++ b/day3.html @@ -83,7 +83,7 @@ diff --git a/day3/lc203.html b/day3/lc203.html index 62baec8..45a659f 100644 --- a/day3/lc203.html +++ b/day3/lc203.html @@ -83,7 +83,7 @@ diff --git a/day3/lc206.html b/day3/lc206.html index c9e0a87..5f92712 100644 --- a/day3/lc206.html +++ b/day3/lc206.html @@ -83,7 +83,7 @@ diff --git a/day3/lc707.html b/day3/lc707.html index 6409bec..6da046c 100644 --- a/day3/lc707.html +++ b/day3/lc707.html @@ -83,7 +83,7 @@ diff --git a/day30.html b/day30.html index d9e3bbe..7ee531b 100644 --- a/day30.html +++ b/day30.html @@ -83,7 +83,7 @@ diff --git a/day30/332.html b/day30/332.html index 6d1a58e..81c485f 100644 --- a/day30/332.html +++ b/day30/332.html @@ -83,7 +83,7 @@ diff --git a/day30/lc37.html b/day30/lc37.html index 414c8ce..828acc0 100644 --- a/day30/lc37.html +++ b/day30/lc37.html @@ -83,7 +83,7 @@ diff --git a/day30/lc51.html b/day30/lc51.html index 2ef80c5..3bbe182 100644 --- a/day30/lc51.html +++ b/day30/lc51.html @@ -83,7 +83,7 @@ diff --git a/day31.html b/day31.html index a8eae6a..6ab15aa 100644 --- a/day31.html +++ b/day31.html @@ -83,7 +83,7 @@ diff --git a/day31/lc376.html b/day31/lc376.html index 92d000d..f74103c 100644 --- a/day31/lc376.html +++ b/day31/lc376.html @@ -83,7 +83,7 @@ diff --git a/day31/lc455.html b/day31/lc455.html index d0db228..703045c 100644 --- a/day31/lc455.html +++ b/day31/lc455.html @@ -83,7 +83,7 @@ diff --git a/day31/lc53.html b/day31/lc53.html index 2197f44..c43aa94 100644 --- a/day31/lc53.html +++ b/day31/lc53.html @@ -83,7 +83,7 @@ diff --git a/day32.html b/day32.html index d58b880..3d34f2d 100644 --- a/day32.html +++ b/day32.html @@ -83,7 +83,7 @@ diff --git a/day32/lc122.html b/day32/lc122.html index d8d3e35..6be2b46 100644 --- a/day32/lc122.html +++ b/day32/lc122.html @@ -83,7 +83,7 @@ diff --git a/day32/lc45.html b/day32/lc45.html index 6c15265..fc9ecc9 100644 --- a/day32/lc45.html +++ b/day32/lc45.html @@ -83,7 +83,7 @@ diff --git a/day32/lc55.html b/day32/lc55.html index 525b9fd..1c0ec9d 100644 --- a/day32/lc55.html +++ b/day32/lc55.html @@ -83,7 +83,7 @@ diff --git a/day34.html b/day34.html index 51faf62..9cd1fbb 100644 --- a/day34.html +++ b/day34.html @@ -83,7 +83,7 @@ diff --git a/day34/lc1005.html b/day34/lc1005.html index 1a0ee23..539f2b6 100644 --- a/day34/lc1005.html +++ b/day34/lc1005.html @@ -83,7 +83,7 @@ diff --git a/day34/lc134.html b/day34/lc134.html index 39ec9d8..abb207e 100644 --- a/day34/lc134.html +++ b/day34/lc134.html @@ -83,7 +83,7 @@ diff --git a/day34/lc135.html b/day34/lc135.html index 1257dc6..5e9b2ee 100644 --- a/day34/lc135.html +++ b/day34/lc135.html @@ -83,7 +83,7 @@ diff --git a/day35.html b/day35.html index 30ce53b..f7dbc87 100644 --- a/day35.html +++ b/day35.html @@ -83,7 +83,7 @@ diff --git a/day35/lc406.html b/day35/lc406.html index 89da77d..1331fce 100644 --- a/day35/lc406.html +++ b/day35/lc406.html @@ -83,7 +83,7 @@ diff --git a/day35/lc452.html b/day35/lc452.html index 5ec8ef4..c442c1a 100644 --- a/day35/lc452.html +++ b/day35/lc452.html @@ -83,7 +83,7 @@ diff --git a/day35/lc860.html b/day35/lc860.html index 258142e..7aa78c7 100644 --- a/day35/lc860.html +++ b/day35/lc860.html @@ -83,7 +83,7 @@ diff --git a/day36.html b/day36.html index 3067ec4..d997616 100644 --- a/day36.html +++ b/day36.html @@ -83,7 +83,7 @@ diff --git a/day36/lc435.html b/day36/lc435.html index 9eeae22..3eec79d 100644 --- a/day36/lc435.html +++ b/day36/lc435.html @@ -83,7 +83,7 @@ diff --git a/day36/lc56.html b/day36/lc56.html index cc48f51..4d2f68d 100644 --- a/day36/lc56.html +++ b/day36/lc56.html @@ -83,7 +83,7 @@ diff --git a/day36/lc763.html b/day36/lc763.html index 10a04ed..4a7593e 100644 --- a/day36/lc763.html +++ b/day36/lc763.html @@ -83,7 +83,7 @@ diff --git a/day37.html b/day37.html index 8d3259c..27cca3c 100644 --- a/day37.html +++ b/day37.html @@ -83,7 +83,7 @@ diff --git a/day37/lc738.html b/day37/lc738.html index d4843dc..ea8fb40 100644 --- a/day37/lc738.html +++ b/day37/lc738.html @@ -83,7 +83,7 @@ diff --git a/day37/lc968.html b/day37/lc968.html index 5d015e8..03a5b11 100644 --- a/day37/lc968.html +++ b/day37/lc968.html @@ -83,7 +83,7 @@ diff --git a/day38.html b/day38.html index ef543a7..45e6c80 100644 --- a/day38.html +++ b/day38.html @@ -83,7 +83,7 @@ diff --git a/day38/lc509.html b/day38/lc509.html index 87e94b7..43510f5 100644 --- a/day38/lc509.html +++ b/day38/lc509.html @@ -83,7 +83,7 @@ diff --git a/day38/lc70.html b/day38/lc70.html index 7198905..2b27a78 100644 --- a/day38/lc70.html +++ b/day38/lc70.html @@ -83,7 +83,7 @@ diff --git a/day38/lc746.html b/day38/lc746.html index 3626d52..3921664 100644 --- a/day38/lc746.html +++ b/day38/lc746.html @@ -83,7 +83,7 @@ diff --git a/day39.html b/day39.html index 3807f72..0992f82 100644 --- a/day39.html +++ b/day39.html @@ -83,7 +83,7 @@ diff --git a/day39/lc62.html b/day39/lc62.html index beb0472..edb68fd 100644 --- a/day39/lc62.html +++ b/day39/lc62.html @@ -83,7 +83,7 @@ diff --git a/day39/lc63.html b/day39/lc63.html index 09345d6..d43f290 100644 --- a/day39/lc63.html +++ b/day39/lc63.html @@ -83,7 +83,7 @@ diff --git a/day4.html b/day4.html index dbb527f..0b8b8f9 100644 --- a/day4.html +++ b/day4.html @@ -83,7 +83,7 @@ diff --git a/day4/lc02.07.html b/day4/lc02.07.html index 5dfa80f..fbcb966 100644 --- a/day4/lc02.07.html +++ b/day4/lc02.07.html @@ -83,7 +83,7 @@ diff --git a/day4/lc142.html b/day4/lc142.html index e4669b9..d17dcf4 100644 --- a/day4/lc142.html +++ b/day4/lc142.html @@ -83,7 +83,7 @@ diff --git a/day4/lc19.html b/day4/lc19.html index 067017c..caadb5e 100644 --- a/day4/lc19.html +++ b/day4/lc19.html @@ -83,7 +83,7 @@ diff --git a/day4/lc24.html b/day4/lc24.html index 51428a8..b42941d 100644 --- a/day4/lc24.html +++ b/day4/lc24.html @@ -83,7 +83,7 @@ diff --git a/day41.html b/day41.html index 99f19e1..2ac47ed 100644 --- a/day41.html +++ b/day41.html @@ -83,7 +83,7 @@ diff --git a/day41/lc343.html b/day41/lc343.html index 595bc59..e09400d 100644 --- a/day41/lc343.html +++ b/day41/lc343.html @@ -83,7 +83,7 @@ diff --git a/day41/lc96.html b/day41/lc96.html index b8a4677..d2390c2 100644 --- a/day41/lc96.html +++ b/day41/lc96.html @@ -83,7 +83,7 @@ diff --git a/day42.html b/day42.html index 163bb5f..cbf22b6 100644 --- a/day42.html +++ b/day42.html @@ -83,7 +83,7 @@ diff --git a/day42/lc416.html b/day42/lc416.html index c96c616..644752f 100644 --- a/day42/lc416.html +++ b/day42/lc416.html @@ -83,7 +83,7 @@ diff --git a/day43.html b/day43.html index 37a1959..9537d34 100644 --- a/day43.html +++ b/day43.html @@ -83,7 +83,7 @@ diff --git a/day43/lc1049.html b/day43/lc1049.html index 0b6a589..e278b10 100644 --- a/day43/lc1049.html +++ b/day43/lc1049.html @@ -83,7 +83,7 @@ diff --git a/day43/lc474.html b/day43/lc474.html index 3bf8259..78ecab8 100644 --- a/day43/lc474.html +++ b/day43/lc474.html @@ -83,7 +83,7 @@ diff --git a/day43/lc494.html b/day43/lc494.html index 69ea62c..7d881ee 100644 --- a/day43/lc494.html +++ b/day43/lc494.html @@ -83,7 +83,7 @@ diff --git a/day44.html b/day44.html index e9f4dbd..09ececc 100644 --- a/day44.html +++ b/day44.html @@ -83,7 +83,7 @@ diff --git a/day44/lc377.html b/day44/lc377.html index 72af3a3..8e69a36 100644 --- a/day44/lc377.html +++ b/day44/lc377.html @@ -83,7 +83,7 @@ diff --git a/day44/lc518.html b/day44/lc518.html index 27b6456..b0c19a5 100644 --- a/day44/lc518.html +++ b/day44/lc518.html @@ -83,7 +83,7 @@ diff --git a/day45.html b/day45.html index ff59744..2f58342 100644 --- a/day45.html +++ b/day45.html @@ -83,7 +83,7 @@ diff --git a/day45/lc279.html b/day45/lc279.html index 0a86c8f..2db31da 100644 --- a/day45/lc279.html +++ b/day45/lc279.html @@ -83,7 +83,7 @@ diff --git a/day45/lc322.html b/day45/lc322.html index ae5c18c..557cc23 100644 --- a/day45/lc322.html +++ b/day45/lc322.html @@ -83,7 +83,7 @@ diff --git a/day45/lc70.html b/day45/lc70.html index 5b64e43..12db337 100644 --- a/day45/lc70.html +++ b/day45/lc70.html @@ -83,7 +83,7 @@ diff --git a/day46.html b/day46.html index f1c06d7..89c72bb 100644 --- a/day46.html +++ b/day46.html @@ -83,7 +83,7 @@ @@ -188,7 +188,7 @@

- @@ -202,7 +202,7 @@

- diff --git a/day46/lc139.html b/day46/lc139.html new file mode 100644 index 0000000..53ec02a --- /dev/null +++ b/day46/lc139.html @@ -0,0 +1,241 @@ + + + + + + 139.单词拆分 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

139. 单词拆分

+

不会

+
class Solution {
+public:
+    bool wordBreak(string s, vector<string>& wordDict) {
+        // dp[i] -> 长度为i的字符串是否可以拼出来
+        // dp[j] = true if dp[j-i] == true and [i:j] in wordDict
+        unordered_set<string> wordSet(wordDict.begin(),wordDict.end());
+        vector<bool>dp(s.size()+1,false);
+        dp[0]=true;
+        for (int i = 1 ; i<=s.size();i++) {
+            for (int j = 0; j < i; j ++ ) {
+                string word = s.substr(j,i-j);
+                if (dp[j] && wordSet.find(word)!= wordSet.end())
+                    dp[i] = true;
+            }
+        }
+        return dp[s.size()];
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day48.html b/day48.html new file mode 100644 index 0000000..6fa218f --- /dev/null +++ b/day48.html @@ -0,0 +1,235 @@ + + + + + + day 48 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

第九章 动态规划part09

+

● 198.打家劫舍 +● 213.打家劫舍II
+● 337.打家劫舍III

+

详细布置

+

今天就是打家劫舍的一天,这个系列不算难,大家可以一口气拿下。

+

198.打家劫舍

+

视频讲解:https://www.bilibili.com/video/BV1Te411N7SX +https://programmercarl.com/0198.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8D.html

+

213.打家劫舍II

+

视频讲解:https://www.bilibili.com/video/BV1oM411B7xq +https://programmercarl.com/0213.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8DII.html

+

337.打家劫舍III

+

视频讲解:https://www.bilibili.com/video/BV1H24y1Q7sY +https://programmercarl.com/0337.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8DIII.html

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day48/lc198.html b/day48/lc198.html new file mode 100644 index 0000000..ecfdf7d --- /dev/null +++ b/day48/lc198.html @@ -0,0 +1,239 @@ + + + + + + 198.打家劫舍 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

198. 打家劫舍

+

这个是抄随想录的

+
class Solution {
+public:
+    int rob(vector<int>& nums) {
+        if (nums.size() == 0) return 0;
+        if (nums.size() == 1) return nums[0];
+        // dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]
+        // dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
+        vector<int> dp(nums.size());
+        dp[0] = nums[0];
+        dp[1] = max(nums[0], nums[1]);
+        for (int i = 2; i < nums.size(); i++) {
+            dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
+        }
+        return dp[nums.size() - 1];
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day48/lc213.html b/day48/lc213.html new file mode 100644 index 0000000..2eefd03 --- /dev/null +++ b/day48/lc213.html @@ -0,0 +1,250 @@ + + + + + + 213.打家劫舍II - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

213. 打家劫舍 II

+

这个是自己写的

+
class Solution {
+public:
+    int rob(vector<int>& nums) {
+        if (nums.size() == 0) return 0;
+        if (nums.size() == 1) return nums[0];
+        // dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]
+        // dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
+        vector<int> dp(nums.size());
+        // skip index 0 first
+        int res = 0;
+        dp[0] = 0;
+        dp[1] = nums[1];
+        for (int i = 2; i < nums.size(); i++) {
+            dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
+        }
+        res = dp[nums.size()-1];
+        dp[0] = nums[0];
+        dp[1] = max(nums[0], nums[1]);
+        
+        for (int i = 2; i < nums.size() - 1; i++) {
+            dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
+        }
+
+        res = max(res,dp[nums.size()-2]);
+        return res;
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day48/lc337.html b/day48/lc337.html new file mode 100644 index 0000000..6415400 --- /dev/null +++ b/day48/lc337.html @@ -0,0 +1,254 @@ + + + + + + 337.打家劫舍III - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

337.打家劫舍III

+

自己做的

+
/**
+ * Definition for a binary tree node.
+ * struct TreeNode {
+ *     int val;
+ *     TreeNode *left;
+ *     TreeNode *right;
+ *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
+ *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
+ *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
+ * };
+ */
+class Solution {
+public:
+// <r1,r2> r1 如果偷当前节点,得到的最大值 ; r2 不偷当前节点的最大值
+    pair<int,int> f(TreeNode*root) {
+        if(!root){return make_pair(0,0);}
+        auto leftr = f(root->left);
+        auto rightr = f(root->right);
+        int takeleft = leftr.first;
+        int notakeleft = leftr.second;
+        int takeright = rightr.first;
+        int notakeright = rightr.second;
+        int r1 = notakeleft + notakeright + root->val;
+        int r2 = max(takeleft,notakeleft) + max(takeright,notakeright);
+        return make_pair(r1, r2);
+    }
+    int rob(TreeNode* root) {
+        auto res = f(root);
+        return max(res.first, res.second);
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day49.html b/day49.html new file mode 100644 index 0000000..f8f5566 --- /dev/null +++ b/day49.html @@ -0,0 +1,231 @@ + + + + + + day 49 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

第九章 动态规划part10

+

● 121. 买卖股票的最佳时机 +● 122.买卖股票的最佳时机II

+

详细布置

+

股票问题是一个动态规划的系列问题,今日安排的题目不多,大家可以慢慢消化。

+

121. 买卖股票的最佳时机

+

视频讲解:https://www.bilibili.com/video/BV1Xe4y1u77q +https://programmercarl.com/0121.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BA.html

+

122.买卖股票的最佳时机II

+

视频讲解:https://www.bilibili.com/video/BV1D24y1Q7Ls +https://programmercarl.com/0122.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAII%EF%BC%88%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%EF%BC%89.html

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day49/lc121.html b/day49/lc121.html new file mode 100644 index 0000000..961ab3d --- /dev/null +++ b/day49/lc121.html @@ -0,0 +1,237 @@ + + + + + + 121. 买卖股票的最佳时机 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

121. 买卖股票的最佳时机

+

一开始这样子没有用动规

+
class Solution {
+public:
+    int maxProfit(vector<int>& prices) {
+        int res = 0;
+        int cmin = INT_MAX;
+        for (int i = 0; i < prices.size(); i ++ ) {
+            cmin = min(cmin, prices[i]);
+            if (prices[i] > cmin) {
+                res = max(res, prices[i] - cmin);
+            }
+        }
+        return res;
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day49/lc122.html b/day49/lc122.html new file mode 100644 index 0000000..58ab5ec --- /dev/null +++ b/day49/lc122.html @@ -0,0 +1,252 @@ + + + + + + 122.买卖股票的最佳时机II - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

122. 买卖股票的最佳时机 II

+

抄了随想录

+
class Solution {
+public:
+    int maxProfit(vector<int>& prices) {
+        int len = prices.size();
+        vector<vector<int>> dp(len, vector<int>(2, 0));
+        // dp[i][0] 表示第i天持有股票所得现金。
+        // dp[i][1] 表示第i天不持有股票所得最多现金
+
+// 如果第i天持有股票即dp[i][0], 那么可以由两个状态推出来
+
+// 第i-1天就持有股票,那么就保持现状,所得现金就是昨天持有股票的所得现金 即:dp[i - 1][0]
+// 第i天买入股票,所得现金就是昨天不持有股票的所得现金减去 今天的股票价格 即:dp[i - 1][1] - prices[i]
+
+
+// 再来看看如果第i天不持有股票即dp[i][1]的情况, 依然可以由两个状态推出来
+
+// 第i-1天就不持有股票,那么就保持现状,所得现金就是昨天不持有股票的所得现金 即:dp[i - 1][1]
+// 第i天卖出股票,所得现金就是按照今天股票价格卖出后所得现金即:prices[i] + dp[i - 1][0]
+        dp[0][0] -= prices[0];
+        dp[0][1] = 0;
+        for (int i = 1; i < len; i++) {
+            dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - prices[i]); // 注意这里是和121. 买卖股票的最佳时机唯一不同的地方。
+            dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i]);
+        }
+        return dp[len - 1][1];
+
+
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day5.html b/day5.html index 40ac50f..33ebc38 100644 --- a/day5.html +++ b/day5.html @@ -83,7 +83,7 @@ diff --git a/day50.html b/day50.html new file mode 100644 index 0000000..4c8f265 --- /dev/null +++ b/day50.html @@ -0,0 +1,232 @@ + + + + + + day 50 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

第九章 动态规划part11

+

● 123.买卖股票的最佳时机III
+● 188.买卖股票的最佳时机IV

+

详细布置

+

123.买卖股票的最佳时机III

+

这道题一下子就难度上来了,关键在于至多买卖两次,这意味着可以买卖一次,可以买卖两次,也可以不买卖。 +视频讲解:https://www.bilibili.com/video/BV1WG411K7AR +https://programmercarl.com/0123.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAIII.html

+

188.买卖股票的最佳时机IV

+

本题是123.买卖股票的最佳时机III 的进阶版
+视频讲解:https://www.bilibili.com/video/BV16M411U7XJ +https://programmercarl.com/0188.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAIV.html

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day50/lc123.html b/day50/lc123.html new file mode 100644 index 0000000..b53d395 --- /dev/null +++ b/day50/lc123.html @@ -0,0 +1,246 @@ + + + + + + 123.买卖股票的最佳时机III - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

123.买卖股票的最佳时机III

+

自己写的时候漏掉了dp[0][3]=-prices[0];这个条件

+
class Solution {
+public:
+    int maxProfit(vector<int>& prices) {
+//         一天一共就有五个状态,
+
+// 没有操作 (其实我们也可以不设置这个状态)
+// 第一次持有股票
+// 第一次不持有股票
+// 第二次持有股票
+// 第二次不持有股票
+// dp[i][j]中 i表示第i天,j为 [0 - 4] 五个状态,dp[i][j]表示第i天状态j所剩最大现金。
+vector<vector<int>>dp(prices.size(), vector<int>(5,0));
+dp[0][1]=dp[0][3]=-prices[0];
+
+for(int i=1;i<prices.size();i++){
+dp[i][1] = max(dp[i - 1][0] - prices[i], dp[i - 1][1]);
+dp[i][2] = max(dp[i - 1][1] + prices[i], dp[i - 1][2]);
+dp[i][3] = max(dp[i - 1][2] - prices[i], dp[i - 1][3]);
+dp[i][4] = max(dp[i - 1][3] + prices[i], dp[i - 1][4]);
+}
+return max(dp[prices.size()-1][2],dp[prices.size()-1][4]);
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day50/lc188.html b/day50/lc188.html new file mode 100644 index 0000000..77f9f76 --- /dev/null +++ b/day50/lc188.html @@ -0,0 +1,239 @@ + + + + + + 188.买卖股票的最佳时机IV - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

188.买卖股票的最佳时机IV

+

不过度确实好难啊,不过是自己写的,就类比一下上一道题

+
class Solution {
+public:
+    int maxProfit(int k, vector<int>& prices) {
+        vector<vector<int>>dp(prices.size(), vector<int>(2*k+1,0));
+        for(int j=0;j<k;j++)dp[0][2*j+1]=-prices[0];
+        for(int i=1;i<prices.size();i++){
+            for(int j=1;j<=k;j++){
+                dp[i][2*j-1] = max(dp[i - 1][2*j-2] - prices[i], dp[i - 1][2*j-1]);
+                dp[i][2*j]   = max(dp[i - 1][2*j-1] + prices[i], dp[i - 1][2*j]);   // 表示不持有
+            }
+        }
+        int res = -1;
+        for(int j=1;j<=k;j++)res=max(res,dp[prices.size()-1][2*j]);
+        return res;
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day51.html b/day51.html new file mode 100644 index 0000000..9fc9ff8 --- /dev/null +++ b/day51.html @@ -0,0 +1,235 @@ + + + + + + day 51 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

第九章 动态规划part12

+

● 309.最佳买卖股票时机含冷冻期
+● 714.买卖股票的最佳时机含手续费
+●总结

+

309.最佳买卖股票时机含冷冻期

+

本题加了一个冷冻期,状态就多了,有点难度,大家要把各个状态分清,思路才能清晰 +视频讲解:https://www.bilibili.com/video/BV1rP4y1D7ku

+

https://programmercarl.com/0309.%E6%9C%80%E4%BD%B3%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E6%97%B6%E6%9C%BA%E5%90%AB%E5%86%B7%E5%86%BB%E6%9C%9F.html

+

714.买卖股票的最佳时机含手续费

+

相对122.买卖股票的最佳时机II ,本题只需要在计算卖出操作的时候减去手续费就可以了,代码几乎是一样的,可以尝试自己做一做。 +视频讲解:https://www.bilibili.com/video/BV1z44y1Z7UR +https://programmercarl.com/0714.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BA%E5%90%AB%E6%89%8B%E7%BB%AD%E8%B4%B9%EF%BC%88%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%EF%BC%89.html

+

股票总结

+

股票问题做一个总结吧 +https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92-%E8%82%A1%E7%A5%A8%E9%97%AE%E9%A2%98%E6%80%BB%E7%BB%93%E7%AF%87.html

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day51/lc309.html b/day51/lc309.html new file mode 100644 index 0000000..fb578fb --- /dev/null +++ b/day51/lc309.html @@ -0,0 +1,240 @@ + + + + + + 309.最佳买卖股票时机含冷冻期 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

309.最佳买卖股票时机含冷冻期

+

我自己定义的状态

+
class Solution {
+public:
+    int maxProfit(vector<int>& v) {
+        // dp[i][j] 表示第i天的最大现金
+        // 0 持有
+        // 1 非持有且不在冷冻期
+        // 2 非持有且冷冻期(刚出售)
+        vector<vector<int>>dp(v.size(),vector<int>(3,0));
+        dp[0][0]=-v[0];
+        for(int i=1;i<v.size();i++){
+            dp[i][0]=max(dp[i-1][0],dp[i-1][1]-v[i]);// 原本就持有 / 解冻后买入
+            dp[i][1]=max(dp[i-1][1],dp[i-1][2]);// 原本就不在冷冻期 / 新的解锁
+            dp[i][2]=dp[i-1][0]+v[i];
+        }
+        return max(dp[v.size()-1][1],dp[v.size()-1][2]);
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day51/lc714.html b/day51/lc714.html new file mode 100644 index 0000000..0f0d9e7 --- /dev/null +++ b/day51/lc714.html @@ -0,0 +1,237 @@ + + + + + + 714.买卖股票的最佳时机含手续费 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

714.买卖股票的最佳时机含手续费

+
class Solution {
+public:
+    int maxProfit(vector<int>& v, int fee) {
+        // dp[i][j]
+        // 0 持有
+        // 1 不持有
+        vector<vector<int>>dp(v.size(),vector<int>(2,0));
+        dp[0][0]=-v[0];
+        for(int i=1;i<v.size();i++){
+            dp[i][0]=max(dp[i-1][0],dp[i-1][1]-v[i]);
+            dp[i][1]=max(dp[i-1][1],dp[i-1][0]+v[i]-fee);
+        }
+        return max(dp[v.size()-1][0],dp[v.size()-1][1]);
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day52.html b/day52.html new file mode 100644 index 0000000..f85828b --- /dev/null +++ b/day52.html @@ -0,0 +1,237 @@ + + + + + + day 52 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

第九章 动态规划part13

+

● 300.最长递增子序列 +● 674. 最长连续递增序列 +● 718. 最长重复子数组

+

详细布置

+

300.最长递增子序列

+

今天开始正式子序列系列,本题是比较简单的,感受感受一下子序列题目的思路。 +视频讲解:https://www.bilibili.com/video/BV1ng411J7xP +https://programmercarl.com/0300.%E6%9C%80%E9%95%BF%E4%B8%8A%E5%8D%87%E5%AD%90%E5%BA%8F%E5%88%97.html

+

674. 最长连续递增序列

+

本题相对于昨天的动态规划:300.最长递增子序列 最大的区别在于“连续”。 先尝试自己做做,感受一下区别
+视频讲解:https://www.bilibili.com/video/BV1bD4y1778v +https://programmercarl.com/0674.%E6%9C%80%E9%95%BF%E8%BF%9E%E7%BB%AD%E9%80%92%E5%A2%9E%E5%BA%8F%E5%88%97.html

+

718. 最长重复子数组

+

稍有难度,要使用二维dp数组了 +视频讲解:https://www.bilibili.com/video/BV178411H7hV +https://programmercarl.com/0718.%E6%9C%80%E9%95%BF%E9%87%8D%E5%A4%8D%E5%AD%90%E6%95%B0%E7%BB%84.html

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day52/lc300.html b/day52/lc300.html new file mode 100644 index 0000000..e3e2900 --- /dev/null +++ b/day52/lc300.html @@ -0,0 +1,237 @@ + + + + + + 300.最长递增子序列 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

300. 最长递增子序列

+
class Solution {
+public:
+    int lengthOfLIS(vector<int>& v) {
+        // dp[i] 表示以i结尾的LIS的长度
+        int res = 1;
+        vector<int>dp(v.size(),1);
+        for(int i = 1;i<v.size();i++){
+            for(int j = 0;j<i;j++) {
+                if(v[i]>v[j])dp[i]=max(dp[i],dp[j]+1);
+            }
+            res = max(res, dp[i]);
+        }
+        return res;
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day52/lc674.html b/day52/lc674.html new file mode 100644 index 0000000..22356fb --- /dev/null +++ b/day52/lc674.html @@ -0,0 +1,236 @@ + + + + + + 674. 最长连续递增序列 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

674. 最长连续递增序列

+

好像比上一题还简单

+
class Solution {
+public:
+    int findLengthOfLCIS(vector<int>& v) {
+        // dp[i] 表示以i结尾的CLIS的长度
+        int res = 1;
+        vector<int>dp(v.size(),1);
+        for(int i = 1;i<v.size();i++){
+            if(v[i]>v[i-1])dp[i]=max(dp[i],dp[i-1]+1);
+            res = max(res, dp[i]);
+        }
+        return res;
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day52/lc718.html b/day52/lc718.html new file mode 100644 index 0000000..02a1e05 --- /dev/null +++ b/day52/lc718.html @@ -0,0 +1,240 @@ + + + + + + 718. 最长重复子数组 - 代码随想录算法训练营刷题笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

718. 最长重复子数组

+

抄了随想路

+
class Solution {
+public:
+    int findLength(vector<int>& nums1, vector<int>& nums2) {
+        // dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]。 (特别注意: “以下标i - 1为结尾的A” 标明一定是 以A[i-1]为结尾的字符串 )
+        vector<vector<int>> dp (nums1.size() + 1, vector<int>(nums2.size() + 1, 0));
+        int result = 0;
+        for (int i = 1; i <= nums1.size(); i++) {
+            for (int j = 1; j <= nums2.size(); j++) {
+                if (nums1[i - 1] == nums2[j - 1]) {
+                    dp[i][j] = dp[i - 1][j - 1] + 1;
+                }
+                if (dp[i][j] > result) result = dp[i][j];
+            }
+        }
+        return result;
+    }
+};
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/day6.html b/day6.html index fa97f43..2ec8b12 100644 --- a/day6.html +++ b/day6.html @@ -83,7 +83,7 @@ diff --git a/day6/lc1.html b/day6/lc1.html index e147407..452609a 100644 --- a/day6/lc1.html +++ b/day6/lc1.html @@ -83,7 +83,7 @@ diff --git a/day6/lc202.html b/day6/lc202.html index 76c17ed..90996b5 100644 --- a/day6/lc202.html +++ b/day6/lc202.html @@ -83,7 +83,7 @@ diff --git a/day6/lc242.html b/day6/lc242.html index 9b1f291..236e257 100644 --- a/day6/lc242.html +++ b/day6/lc242.html @@ -83,7 +83,7 @@ diff --git a/day6/lc349.html b/day6/lc349.html index 51adc58..194086d 100644 --- a/day6/lc349.html +++ b/day6/lc349.html @@ -83,7 +83,7 @@ diff --git a/day7.html b/day7.html index 7611041..1d2751b 100644 --- a/day7.html +++ b/day7.html @@ -83,7 +83,7 @@ diff --git a/day7/lc15.html b/day7/lc15.html index 945fe68..7ce8eec 100644 --- a/day7/lc15.html +++ b/day7/lc15.html @@ -83,7 +83,7 @@ diff --git a/day7/lc18.html b/day7/lc18.html index bacad83..0de7916 100644 --- a/day7/lc18.html +++ b/day7/lc18.html @@ -83,7 +83,7 @@ diff --git a/day7/lc383.html b/day7/lc383.html index 2e04584..84f0a99 100644 --- a/day7/lc383.html +++ b/day7/lc383.html @@ -83,7 +83,7 @@ diff --git a/day7/lc454.html b/day7/lc454.html index 430aab8..2cbae91 100644 --- a/day7/lc454.html +++ b/day7/lc454.html @@ -83,7 +83,7 @@ diff --git a/day8.html b/day8.html index 0cfbf3b..1d0f770 100644 --- a/day8.html +++ b/day8.html @@ -83,7 +83,7 @@ diff --git a/day8/lc151.html b/day8/lc151.html index 0a2b7eb..6a654eb 100644 --- a/day8/lc151.html +++ b/day8/lc151.html @@ -83,7 +83,7 @@ diff --git a/day8/lc344.html b/day8/lc344.html index 1640bc4..57f1490 100644 --- a/day8/lc344.html +++ b/day8/lc344.html @@ -83,7 +83,7 @@ diff --git a/day8/lc541.html b/day8/lc541.html index 96d230a..484d0e1 100644 --- a/day8/lc541.html +++ b/day8/lc541.html @@ -83,7 +83,7 @@ diff --git a/day8/offer5.html b/day8/offer5.html index 12ed7ff..dd321ac 100644 --- a/day8/offer5.html +++ b/day8/offer5.html @@ -83,7 +83,7 @@ diff --git a/day8/offer58.html b/day8/offer58.html index f3002a6..b902fa3 100644 --- a/day8/offer58.html +++ b/day8/offer58.html @@ -83,7 +83,7 @@ diff --git a/day9.html b/day9.html index 746304d..d08e17f 100644 --- a/day9.html +++ b/day9.html @@ -83,7 +83,7 @@ diff --git a/day9/lc28.html b/day9/lc28.html index 93110f3..2ea18df 100644 --- a/day9/lc28.html +++ b/day9/lc28.html @@ -83,7 +83,7 @@ diff --git a/day9/lc459.html b/day9/lc459.html index 1e45920..0398a46 100644 --- a/day9/lc459.html +++ b/day9/lc459.html @@ -83,7 +83,7 @@ diff --git a/index.html b/index.html index 1d0ccce..444e389 100644 --- a/index.html +++ b/index.html @@ -83,7 +83,7 @@ diff --git a/print.html b/print.html index abc5d04..deddf2f 100644 --- a/print.html +++ b/print.html @@ -84,7 +84,7 @@ @@ -4491,6 +4491,364 @@

背包问题总结篇!

https://programmercarl.com/%E8%83%8C%E5%8C%85%E6%80%BB%E7%BB%93%E7%AF%87.html

+

139. 单词拆分

+

不会

+
class Solution {
+public:
+    bool wordBreak(string s, vector<string>& wordDict) {
+        // dp[i] -> 长度为i的字符串是否可以拼出来
+        // dp[j] = true if dp[j-i] == true and [i:j] in wordDict
+        unordered_set<string> wordSet(wordDict.begin(),wordDict.end());
+        vector<bool>dp(s.size()+1,false);
+        dp[0]=true;
+        for (int i = 1 ; i<=s.size();i++) {
+            for (int j = 0; j < i; j ++ ) {
+                string word = s.substr(j,i-j);
+                if (dp[j] && wordSet.find(word)!= wordSet.end())
+                    dp[i] = true;
+            }
+        }
+        return dp[s.size()];
+    }
+};
+
+

第九章 动态规划part09

+

● 198.打家劫舍 +● 213.打家劫舍II
+● 337.打家劫舍III

+

详细布置

+

今天就是打家劫舍的一天,这个系列不算难,大家可以一口气拿下。

+

198.打家劫舍

+

视频讲解:https://www.bilibili.com/video/BV1Te411N7SX +https://programmercarl.com/0198.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8D.html

+

213.打家劫舍II

+

视频讲解:https://www.bilibili.com/video/BV1oM411B7xq +https://programmercarl.com/0213.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8DII.html

+

337.打家劫舍III

+

视频讲解:https://www.bilibili.com/video/BV1H24y1Q7sY +https://programmercarl.com/0337.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8DIII.html

+

198. 打家劫舍

+

这个是抄随想录的

+
class Solution {
+public:
+    int rob(vector<int>& nums) {
+        if (nums.size() == 0) return 0;
+        if (nums.size() == 1) return nums[0];
+        // dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]
+        // dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
+        vector<int> dp(nums.size());
+        dp[0] = nums[0];
+        dp[1] = max(nums[0], nums[1]);
+        for (int i = 2; i < nums.size(); i++) {
+            dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
+        }
+        return dp[nums.size() - 1];
+    }
+};
+
+

213. 打家劫舍 II

+

这个是自己写的

+
class Solution {
+public:
+    int rob(vector<int>& nums) {
+        if (nums.size() == 0) return 0;
+        if (nums.size() == 1) return nums[0];
+        // dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]
+        // dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
+        vector<int> dp(nums.size());
+        // skip index 0 first
+        int res = 0;
+        dp[0] = 0;
+        dp[1] = nums[1];
+        for (int i = 2; i < nums.size(); i++) {
+            dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
+        }
+        res = dp[nums.size()-1];
+        dp[0] = nums[0];
+        dp[1] = max(nums[0], nums[1]);
+        
+        for (int i = 2; i < nums.size() - 1; i++) {
+            dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
+        }
+
+        res = max(res,dp[nums.size()-2]);
+        return res;
+    }
+};
+
+

337.打家劫舍III

+

自己做的

+
/**
+ * Definition for a binary tree node.
+ * struct TreeNode {
+ *     int val;
+ *     TreeNode *left;
+ *     TreeNode *right;
+ *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
+ *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
+ *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
+ * };
+ */
+class Solution {
+public:
+// <r1,r2> r1 如果偷当前节点,得到的最大值 ; r2 不偷当前节点的最大值
+    pair<int,int> f(TreeNode*root) {
+        if(!root){return make_pair(0,0);}
+        auto leftr = f(root->left);
+        auto rightr = f(root->right);
+        int takeleft = leftr.first;
+        int notakeleft = leftr.second;
+        int takeright = rightr.first;
+        int notakeright = rightr.second;
+        int r1 = notakeleft + notakeright + root->val;
+        int r2 = max(takeleft,notakeleft) + max(takeright,notakeright);
+        return make_pair(r1, r2);
+    }
+    int rob(TreeNode* root) {
+        auto res = f(root);
+        return max(res.first, res.second);
+    }
+};
+
+

第九章 动态规划part10

+

● 121. 买卖股票的最佳时机 +● 122.买卖股票的最佳时机II

+

详细布置

+

股票问题是一个动态规划的系列问题,今日安排的题目不多,大家可以慢慢消化。

+

121. 买卖股票的最佳时机

+

视频讲解:https://www.bilibili.com/video/BV1Xe4y1u77q +https://programmercarl.com/0121.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BA.html

+

122.买卖股票的最佳时机II

+

视频讲解:https://www.bilibili.com/video/BV1D24y1Q7Ls +https://programmercarl.com/0122.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAII%EF%BC%88%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%EF%BC%89.html

+

121. 买卖股票的最佳时机

+

一开始这样子没有用动规

+
class Solution {
+public:
+    int maxProfit(vector<int>& prices) {
+        int res = 0;
+        int cmin = INT_MAX;
+        for (int i = 0; i < prices.size(); i ++ ) {
+            cmin = min(cmin, prices[i]);
+            if (prices[i] > cmin) {
+                res = max(res, prices[i] - cmin);
+            }
+        }
+        return res;
+    }
+};
+
+

122. 买卖股票的最佳时机 II

+

抄了随想录

+
class Solution {
+public:
+    int maxProfit(vector<int>& prices) {
+        int len = prices.size();
+        vector<vector<int>> dp(len, vector<int>(2, 0));
+        // dp[i][0] 表示第i天持有股票所得现金。
+        // dp[i][1] 表示第i天不持有股票所得最多现金
+
+// 如果第i天持有股票即dp[i][0], 那么可以由两个状态推出来
+
+// 第i-1天就持有股票,那么就保持现状,所得现金就是昨天持有股票的所得现金 即:dp[i - 1][0]
+// 第i天买入股票,所得现金就是昨天不持有股票的所得现金减去 今天的股票价格 即:dp[i - 1][1] - prices[i]
+
+
+// 再来看看如果第i天不持有股票即dp[i][1]的情况, 依然可以由两个状态推出来
+
+// 第i-1天就不持有股票,那么就保持现状,所得现金就是昨天不持有股票的所得现金 即:dp[i - 1][1]
+// 第i天卖出股票,所得现金就是按照今天股票价格卖出后所得现金即:prices[i] + dp[i - 1][0]
+        dp[0][0] -= prices[0];
+        dp[0][1] = 0;
+        for (int i = 1; i < len; i++) {
+            dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - prices[i]); // 注意这里是和121. 买卖股票的最佳时机唯一不同的地方。
+            dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i]);
+        }
+        return dp[len - 1][1];
+
+
+    }
+};
+
+

第九章 动态规划part11

+

● 123.买卖股票的最佳时机III
+● 188.买卖股票的最佳时机IV

+

详细布置

+

123.买卖股票的最佳时机III

+

这道题一下子就难度上来了,关键在于至多买卖两次,这意味着可以买卖一次,可以买卖两次,也可以不买卖。 +视频讲解:https://www.bilibili.com/video/BV1WG411K7AR +https://programmercarl.com/0123.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAIII.html

+

188.买卖股票的最佳时机IV

+

本题是123.买卖股票的最佳时机III 的进阶版
+视频讲解:https://www.bilibili.com/video/BV16M411U7XJ +https://programmercarl.com/0188.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAIV.html

+

123.买卖股票的最佳时机III

+

自己写的时候漏掉了dp[0][3]=-prices[0];这个条件

+
class Solution {
+public:
+    int maxProfit(vector<int>& prices) {
+//         一天一共就有五个状态,
+
+// 没有操作 (其实我们也可以不设置这个状态)
+// 第一次持有股票
+// 第一次不持有股票
+// 第二次持有股票
+// 第二次不持有股票
+// dp[i][j]中 i表示第i天,j为 [0 - 4] 五个状态,dp[i][j]表示第i天状态j所剩最大现金。
+vector<vector<int>>dp(prices.size(), vector<int>(5,0));
+dp[0][1]=dp[0][3]=-prices[0];
+
+for(int i=1;i<prices.size();i++){
+dp[i][1] = max(dp[i - 1][0] - prices[i], dp[i - 1][1]);
+dp[i][2] = max(dp[i - 1][1] + prices[i], dp[i - 1][2]);
+dp[i][3] = max(dp[i - 1][2] - prices[i], dp[i - 1][3]);
+dp[i][4] = max(dp[i - 1][3] + prices[i], dp[i - 1][4]);
+}
+return max(dp[prices.size()-1][2],dp[prices.size()-1][4]);
+    }
+};
+
+

188.买卖股票的最佳时机IV

+

不过度确实好难啊,不过是自己写的,就类比一下上一道题

+
class Solution {
+public:
+    int maxProfit(int k, vector<int>& prices) {
+        vector<vector<int>>dp(prices.size(), vector<int>(2*k+1,0));
+        for(int j=0;j<k;j++)dp[0][2*j+1]=-prices[0];
+        for(int i=1;i<prices.size();i++){
+            for(int j=1;j<=k;j++){
+                dp[i][2*j-1] = max(dp[i - 1][2*j-2] - prices[i], dp[i - 1][2*j-1]);
+                dp[i][2*j]   = max(dp[i - 1][2*j-1] + prices[i], dp[i - 1][2*j]);   // 表示不持有
+            }
+        }
+        int res = -1;
+        for(int j=1;j<=k;j++)res=max(res,dp[prices.size()-1][2*j]);
+        return res;
+    }
+};
+
+

第九章 动态规划part12

+

● 309.最佳买卖股票时机含冷冻期
+● 714.买卖股票的最佳时机含手续费
+●总结

+

309.最佳买卖股票时机含冷冻期

+

本题加了一个冷冻期,状态就多了,有点难度,大家要把各个状态分清,思路才能清晰 +视频讲解:https://www.bilibili.com/video/BV1rP4y1D7ku

+

https://programmercarl.com/0309.%E6%9C%80%E4%BD%B3%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E6%97%B6%E6%9C%BA%E5%90%AB%E5%86%B7%E5%86%BB%E6%9C%9F.html

+

714.买卖股票的最佳时机含手续费

+

相对122.买卖股票的最佳时机II ,本题只需要在计算卖出操作的时候减去手续费就可以了,代码几乎是一样的,可以尝试自己做一做。 +视频讲解:https://www.bilibili.com/video/BV1z44y1Z7UR +https://programmercarl.com/0714.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BA%E5%90%AB%E6%89%8B%E7%BB%AD%E8%B4%B9%EF%BC%88%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%EF%BC%89.html

+

股票总结

+

股票问题做一个总结吧 +https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92-%E8%82%A1%E7%A5%A8%E9%97%AE%E9%A2%98%E6%80%BB%E7%BB%93%E7%AF%87.html

+

309.最佳买卖股票时机含冷冻期

+

我自己定义的状态

+
class Solution {
+public:
+    int maxProfit(vector<int>& v) {
+        // dp[i][j] 表示第i天的最大现金
+        // 0 持有
+        // 1 非持有且不在冷冻期
+        // 2 非持有且冷冻期(刚出售)
+        vector<vector<int>>dp(v.size(),vector<int>(3,0));
+        dp[0][0]=-v[0];
+        for(int i=1;i<v.size();i++){
+            dp[i][0]=max(dp[i-1][0],dp[i-1][1]-v[i]);// 原本就持有 / 解冻后买入
+            dp[i][1]=max(dp[i-1][1],dp[i-1][2]);// 原本就不在冷冻期 / 新的解锁
+            dp[i][2]=dp[i-1][0]+v[i];
+        }
+        return max(dp[v.size()-1][1],dp[v.size()-1][2]);
+    }
+};
+
+

714.买卖股票的最佳时机含手续费

+
class Solution {
+public:
+    int maxProfit(vector<int>& v, int fee) {
+        // dp[i][j]
+        // 0 持有
+        // 1 不持有
+        vector<vector<int>>dp(v.size(),vector<int>(2,0));
+        dp[0][0]=-v[0];
+        for(int i=1;i<v.size();i++){
+            dp[i][0]=max(dp[i-1][0],dp[i-1][1]-v[i]);
+            dp[i][1]=max(dp[i-1][1],dp[i-1][0]+v[i]-fee);
+        }
+        return max(dp[v.size()-1][0],dp[v.size()-1][1]);
+    }
+};
+
+

第九章 动态规划part13

+

● 300.最长递增子序列 +● 674. 最长连续递增序列 +● 718. 最长重复子数组

+

详细布置

+

300.最长递增子序列

+

今天开始正式子序列系列,本题是比较简单的,感受感受一下子序列题目的思路。 +视频讲解:https://www.bilibili.com/video/BV1ng411J7xP +https://programmercarl.com/0300.%E6%9C%80%E9%95%BF%E4%B8%8A%E5%8D%87%E5%AD%90%E5%BA%8F%E5%88%97.html

+

674. 最长连续递增序列

+

本题相对于昨天的动态规划:300.最长递增子序列 最大的区别在于“连续”。 先尝试自己做做,感受一下区别
+视频讲解:https://www.bilibili.com/video/BV1bD4y1778v +https://programmercarl.com/0674.%E6%9C%80%E9%95%BF%E8%BF%9E%E7%BB%AD%E9%80%92%E5%A2%9E%E5%BA%8F%E5%88%97.html

+

718. 最长重复子数组

+

稍有难度,要使用二维dp数组了 +视频讲解:https://www.bilibili.com/video/BV178411H7hV +https://programmercarl.com/0718.%E6%9C%80%E9%95%BF%E9%87%8D%E5%A4%8D%E5%AD%90%E6%95%B0%E7%BB%84.html

+

300. 最长递增子序列

+
class Solution {
+public:
+    int lengthOfLIS(vector<int>& v) {
+        // dp[i] 表示以i结尾的LIS的长度
+        int res = 1;
+        vector<int>dp(v.size(),1);
+        for(int i = 1;i<v.size();i++){
+            for(int j = 0;j<i;j++) {
+                if(v[i]>v[j])dp[i]=max(dp[i],dp[j]+1);
+            }
+            res = max(res, dp[i]);
+        }
+        return res;
+    }
+};
+
+

674. 最长连续递增序列

+

好像比上一题还简单

+
class Solution {
+public:
+    int findLengthOfLCIS(vector<int>& v) {
+        // dp[i] 表示以i结尾的CLIS的长度
+        int res = 1;
+        vector<int>dp(v.size(),1);
+        for(int i = 1;i<v.size();i++){
+            if(v[i]>v[i-1])dp[i]=max(dp[i],dp[i-1]+1);
+            res = max(res, dp[i]);
+        }
+        return res;
+    }
+};
+
+

718. 最长重复子数组

+

抄了随想路

+
class Solution {
+public:
+    int findLength(vector<int>& nums1, vector<int>& nums2) {
+        // dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]。 (特别注意: “以下标i - 1为结尾的A” 标明一定是 以A[i-1]为结尾的字符串 )
+        vector<vector<int>> dp (nums1.size() + 1, vector<int>(nums2.size() + 1, 0));
+        int result = 0;
+        for (int i = 1; i <= nums1.size(); i++) {
+            for (int j = 1; j <= nums2.size(); j++) {
+                if (nums1[i - 1] == nums2[j - 1]) {
+                    dp[i][j] = dp[i - 1][j - 1] + 1;
+                }
+                if (dp[i][j] > result) result = dp[i][j];
+            }
+        }
+        return result;
+    }
+};
+
diff --git a/remains.html b/remains.html index 02c8185..bb763d7 100644 --- a/remains.html +++ b/remains.html @@ -83,7 +83,7 @@ @@ -171,7 +171,7 @@

代码随想录算法训练营刷题笔记