- 博客(62)
- 收藏
- 关注
原创 VsCode配置C/C++环境、控制台中文乱码、中文包不生效、debug调试、cin无法输入
Vscode C/C++ 环境配置、debug、控制台中文乱码、中文包不生效、cin无法输入
2023-10-26 13:30:57 486
原创 代码随想录一刷个人总结篇
对那些难题看了代码手动模拟+阅读/观看他人的理解/讲解(甚至有一段时间看了讲给中学生的视频。代码手动模拟+阅读/观看他人的理解/讲解(甚至有一段时间看了讲给中学生的视频。 虚拟头节点的设置巧妙的将头节点的特化处理同化为所有节点的处理。 这一章节我更多感觉是为之后的二叉树、单调栈打一些基础。 单调栈我感觉主要是之前题目的一些组合,能看见一些影子。 二叉树章节就开始有一些没地儿使劲儿的感觉。 个人认为:这一章节重点在于 分治和数组的遍历方式。 想明白信息要如何传递,选择相应的遍历方式。
2023-10-25 10:16:27 133
原创 代码随想录算法训练营第六十二天| 84.柱状图中最大的矩形
个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。在所有元素入栈之后,均没有计算矩形面积。我们需要一个数来触发面积的计算过程。用一个从栈底到栈顶非递减的栈来存放元素下标。求在该柱状图中,能够勾勒出来的矩形的最大面积。时, 就找到了 以栈顶元素为高的矩形的面积。注意:加入给定一个非递减的数组,例如。与栈内栈顶元素的上一个元素之差)为:当前的栈顶元素对应的高度。要求这个数不大于0。
2023-10-24 11:28:02 96
原创 代码随想录算法训练营第六十一天| 503.下一个更大元素II 、42. 接雨水
是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。将每一列看作是一个木桶,两个数组分别记录左边的最大值和右边的最大值。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。那么将每个桶的接水量加和就是。个非负整数表示每个宽度为。时间复杂度和空间复杂度都是。个桶所能装的最大容量就是。
2023-10-23 23:39:40 91
原创 Typora的相关配置(Typora主题、字体、快捷键、习惯)
通用 Typora配置。 主要是 更换主题、更换字体、修改快捷键、个人习惯四方面内容。
2023-10-22 12:02:16 742
原创 代码随想录算法训练营第六十天| 739.每日温度 、496.下一个更大元素 I
天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用。如果不存在下一个更大元素,那么本次查询的答案是。**进阶:**你可以设计一个时间复杂度为。,表示每天的温度,返回一个数组。
2023-10-21 11:19:45 108
原创 代码随想录算法训练营第五十九天| 647.回文子串 、516.最长回文子序列
子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。,找出其中最长的回文子序列,并返回该序列的长度。是字符串中的由连续字符组成的一个序列。是正着读和倒过来读一样的字符串。,请你统计并返回这个字符串中。
2023-10-20 13:00:56 143
原创 代码随想录算法训练营第五十七天| 392.判断子序列、115.不同的子序列
如果有大量输入的 S,称作 S1, S2, …, Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。出现的个数,结果需要对 109 + 7 取模。添加此问题并且创建所有测试用例。
2023-10-18 22:33:44 77
原创 代码随想录算法训练营第五十六天| 1143.最长公共子序列 、 1035.不相交的线 、53. 最大子序和 动态规划
是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。以这种方法绘制线条,并返回可以绘制的最大连线数。在两条独立的水平线上按给定的顺序写下。是这两个字符串所共同拥有的子序列。有些相似,就根据昨天的思路做下来了。现在,可以绘制一些连接两个数字。这个代码跟上一道的几乎一模一样。,返回这两个字符串的最长。个字符的最大公共序列的长度。是数组中的一个连续部分。
2023-10-17 17:10:33 72
原创 代码随想录算法训练营第五十五天| 300.最长递增子序列 、674. 最长连续递增序列 718. 最长重复子数组
是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。如果 $nums[k]<nums[i] $ 则 $ nums[i] $ 可以成为。给定一个未经排序的整数数组,找到最长且。,找到其中最长严格递增子序列的长度。结尾的最长递增子序列的下一数,那么。、长度最长的子数组的长度。,并返回该序列的长度。)确定,如果对于每个。就是连续递增子序列。
2023-10-16 13:52:20 46
原创 代码随想录算法训练营第五十三天| 309.最佳买卖股票时机含冷冻期 、714.买卖股票的最佳时机含手续费
你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。设计一个算法计算出最大利润。**注意:**这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。代表了交易股票的手续费用。返回获得利润的最大值。
2023-10-15 12:06:36 253
原创 代码随想录算法训练营第五十二天| 123.买卖股票的最佳时机III 、188.买卖股票的最佳时机IV
*注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。设计一个算法来计算你所能获取的最大利润。设计一个算法来计算你所能获取的最大利润。也就是说,你最多可以买。个元素是一支给定的股票在第。是某支给定的股票在第。给定一个数组,它的第。
2023-10-13 13:37:04 51
原创 代码随想录算法训练营第五十一天| 121.买卖股票的最佳时机 、122.买卖股票的最佳时机II
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。在每一天,你可以决定是否购买和/或出售股票。设计一个算法来计算你所能获取的最大利润。你也可以先购买,然后在。买入这只股票,并选择在。
2023-10-12 23:16:20 43
原创 代码随想录算法训练营第五十天| 198.打家劫舍、213.打家劫舍II 、337.打家劫舍III
一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,小偷又发现了一个新的可行窃的地区。给定一个代表每个房屋存放金额的非负整数数组,计算你。给定一个代表每个房屋存放金额的非负整数数组,计算你。
2023-10-11 14:43:47 56
原创 代码随想录算法训练营第四十九天| 139.单词拆分
*注意:**不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。请你判断是否可以利用字典中出现的单词拼接出。
2023-10-10 19:58:06 131
原创 代码随想录算法训练营第四十八天| 70.爬楼梯(进阶)、322.零钱兑换、279.完全平方数
是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。如果没有任何一种硬币组合能组成总金额,返回。你有多少种不同的方法可以爬到楼顶呢?,表示不同面额的硬币;你可以认为每种硬币的数量是无限的。计算并返回可以凑成总金额所需的。的完全平方数的最少数量。
2023-10-09 13:52:31 78
原创 代码随想录算法训练营第四十六天| 完全背包、518.零钱兑换 II 、377.组合总和 Ⅳ
请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回。题目数据保证结果符合 32 位带符号整数。题目数据保证答案符合 32 位整数范围。表示不同面额的硬币,另给一个整数。假设每一种面额的硬币有无限个。
2023-10-07 17:21:23 60
原创 代码随想录算法训练营第四十五天| 1049.最后一块石头的重量 II、 494.目标和、 474.一和零
1049. 最后一块石头的重量 II - 力扣(LeetCode)题目描述:有一堆石头,用整数数组stones表示。其中stones[i]表示第i块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为x和y,且x <= y。如果x == y,那么两块石头都会被完全粉碎;如果x!= y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下,就返回0。
2023-10-06 19:11:57 37
原创 代码随想录算法训练营第四十三天| 343.整数拆分 、96.不同的二叉搜索树
看了题解的数学推导。在 2个数或3个数的时候存在最优解。返回满足题意的二叉搜索树的种数。这三个是要尽可能接近保证乘积最大。),并使这些整数的乘积最大化。个节点组成且节点值从。你可以获得的最大乘积。
2023-10-04 16:42:59 36
原创 代码随想录算法训练营第四十二天| 62.不同路径 、63.不同路径 II
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格的左上角 (起始点在下图中标记为 “Start” )。网格的左上角 (起始点在下图中标记为 “Start” )。网格中的障碍物和空位置分别用。``注意:此处起始索引为1`问总共有多少条不同的路径?
2023-10-03 18:07:28 312
原创 代码随想录算法训练营第四十一天| 理论基础 、509. 斐波那契数 、 70. 爬楼梯、 746. 使用最小花费爬楼梯
个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。开始,后面的每一项数字都是前面两项数字的和。你有多少种不同的方法可以爬到楼顶呢?解题思路与 斐波那契数一致。请你计算并返回达到楼梯顶部的最低花费。表示)形成的序列称为。
2023-10-02 15:17:43 39
原创 代码随想录算法训练营第三十七天| 738.单调递增的数字 、968.监控二叉树(跳过)
给定一个二叉树,我们在树的节点上安装摄像头。计算监控树的所有节点所需的最小摄像头数量。当且仅当每个相邻位数上的数字。节点上的每个摄影头都可以监视。的最大数字,且数字呈。时,我们称这个整数是。
2023-09-28 12:42:40 27
原创 代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间
我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是。一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。找到了一个符合条件的就把的一端端点和较短的那个对齐。需要移除区间的最小数量,使剩余区间互不重叠。返回一个表示每个字符串片段的长度的列表。表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回。
2023-09-27 20:40:51 23
原创 代码随想录算法训练营第三十五天| 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球
策略:使用一个一维数组保存当前的5 10 20 个数。有一些球形气球贴在一堵用 XY 平面表示的墙面上。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付。处射出一支箭,若有一个气球的直径的开始和结束坐标为。表示队列中一些人的属性(不一定按顺序)。假设有打乱顺序的一群人站成一个队列,数组。你不知道气球的确切 y 坐标。顾客排队购买你的产品,(按账单。在柠檬水摊上,每一杯柠檬水的售价为。注意,一开始你手头没有任何零钱。支付的顺序)一次购买一杯。可以射出的弓箭的数量。是排在队列前面的人)。
2023-09-26 15:29:27 62
原创 代码随想录算法训练营第三十四天| 1005. K 次取反后最大化的数组和 & 134. 加油站 & 135. 分发糖果
解题策略:代码一是找到期间最大油量缺口,找到可以弥补缺口的那个加油站;代码二是当前油量始终保持为非负,一旦为负,则从下一个加油站开始计算。,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回。代码二:当前优良始终保持为非负,一旦为负,则从下一个加油站开始计算。你从其中的一个加油站出发,开始时油箱为空。请你给每个孩子分发糖果,计算并返回需要准备的。 当不存在负整数时,反转最小的非负整数。贪心策略:当存在负整数时,反转最小的负整数。 以这种方式修改数组后,返回数组。表示每个孩子的评分。
2023-09-25 12:51:00 86
原创 代码随想录算法训练营第三十二天| 122.买卖股票的最佳时机II 、55. 跳跃游戏 、45.跳跃游戏II
贪心策略:明天的价格高于今天,那么将今天的买入,在明天卖出。贪心策略:让能到达的天数尽可能往后。贪心策略: 尽可能让下一次跳的更远。
2023-09-23 15:01:33 20
原创 代码随想录算法训练营第三十一天| 455.分发饼干、376.摆动序列、53.最大子序和
贪心策略:每次将最大的饼干分给能最大的满足胃口的孩子。贪心策略:维护一个非负的 连续和。贪心策略:波峰尽量高,波谷尽量低。
2023-09-22 19:14:33 32
原创 代码随想录算法训练营第二十九天| 491.递增子序列、46.全排列、47.全排列 II
去重:使用set容器存放本层遍历过的元素,之后遍历到这些元素就会直接跳过这个元素。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。,找出并返回所有该数组中不同的递增子序列,递增子序列中。思路:利用 used 数组记录当前位置的数字的使用情况。题目描述:给定一个可包含重复数字的序列。题目描述:给定一个不含重复数字的数组。题目描述:给你一个整数数组。返回所有不重复的全排列。
2023-09-20 15:24:25 21
原创 代码随想录算法训练营第二十七天| 39. 组合总和 、40.组合总和II 、131.分割回文串
思路 :难点在于去重,而只要从当前其实位置开始就能避免这类问题。
2023-09-18 13:55:56 24
原创 代码随想录算法训练营第二十三天| 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
思路: 因为要按照从大到小的顺序遍历,所以采用 右中左的顺序。思路:二分 注意区间的划分。
2023-09-14 11:19:54 16
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人