
算法
文章平均质量分 50
noedn
哇,C-S-D-N你们也太黑了,自动给我文章转成VIP。我写文章是为了记录和分享,与其他人共同进步,营造一个开放共享的技术分享环境,这么搞人心态了啊?
展开
-
LeetCode刷题流程:动态规划-股票问题121.122.123.188(非累积,累积,非累积+累积,非累积+多次累积)
动态规划序列含义:dp[持有股票][不持股票]持有股票: 应该为最便宜的股票,(积累问题→\rightarrow→)或者是在上一次(不一定刚刚就是上一支就卖出)交易卖出获得利润之后买入剩下最多的钱;不持股票: 将上一次(不一定刚刚就是上一支就买入)交易买入的股票卖出,能够获得的最大利润。121:整个过程只进行一次交易获得最大利润,因此只需要考虑买入最低价格,卖出最高价格即可。class Solution {public: int maxProfit(vector<int>&原创 2021-05-15 15:49:01 · 146 阅读 · 0 评论 -
LeetCode刷题流程:动态规划-15.139. 单词拆分(可打印状态转移过程完整程序)
Carl大佬的详细解释和答案139.单词拆分题目直接动态规划,之前没有考虑到可能当前位置已经满足,提交之后发现错误。经过打印发现问题,由于当前位置更新可分true和不可分false之后,后来继续分割时可能又不满足了,所以在更新dp[n]的时候应该考虑dp[n]是否为true,因此需要或运算。ac总消耗:4ms 7.3MB本人解答:#include<string>#include<vector>#include<iostream>using namespa原创 2021-05-12 16:06:36 · 235 阅读 · 0 评论 -
LeetCode刷题流程:贪心算法-16.738. 单调递增的数字(to_string和stoi)
738. 单调递增的数字给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。)示例 1:输入: N = 10输出: 9示例 2:输入: N = 1234输出: 1234示例 3:输入: N = 332输出: 299说明: N 是在 [0, 10^9] 范围内的一个整数。局部最优:遇到strNum[i - 1]原创 2021-05-03 10:52:10 · 183 阅读 · 0 评论 -
LeetCode刷题流程:贪心算法-14.763. 划分字母区间
763. 划分字母区间字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。示例:输入:S = “ababcbacadefegdehijhklij”输出:[9,7,8] 解释: 划分结果为 “ababcbaca”, “defegde”, “hijhklij”。每个字母最多出现在一个片段中。 像 “ababcbacadefegde”,“hijhklij” 的划分是错误的,因为划分的片段数较少。按照前面的 45转载 2021-04-29 15:07:23 · 193 阅读 · 0 评论 -
LeetCode刷题流程:贪心算法-12.452. 用最少数量的箭引爆气球
{{6,7},{4,8},{1,5}} 87 |6 | | 5 4 | | | 1标志:6,4,16—4一箭;1—二箭{{1,5},{6,7},{4,8}}对每一个气球的最低端排序,可以保障每一个气球最低端有序降低,此时通过判断前一个气球的最低端与后一个气球的最高端,就可以判断是否需要增加箭。 8 7 | 6 |5 || 4||1标志:5,7,85—一箭;7—8二箭对每一个气球的最高端排序,可以保障每一个气球最高端有原创 2021-04-28 16:30:07 · 143 阅读 · 0 评论 -
LeetCode刷题流程:贪心算法-11.406. 根据身高重建队列
406. 根据身高重建队列假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。示例 1:输入:people =原创 2021-04-28 11:14:31 · 150 阅读 · 0 评论 -
LeetCode刷题流程:贪心算法-1.455.分发饼干
分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例 1:输入: g = [1,2,3], s = [1,1]输出: 1解释:你有三个孩子和两块小饼干,3个孩子的胃.原创 2021-04-22 10:36:44 · 240 阅读 · 0 评论 -
LeetCode刷题流程:回溯算法-15.37. 解数独
37. 解数独编写一个程序,通过填充空格来解决数独问题。数独的解法需 遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例:输入:board =[[“5”,“3”,".",".",“7”,".",".",".","."],[“6”,".",".",“1”,“9”,“5”,".",".","."],[".",“9”,“8转载 2021-04-20 10:40:22 · 243 阅读 · 0 评论 -
LeetCode刷题流程:回溯算法-13.332. 重新安排行程
332. 重新安排行程给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。提示:如果存在多种有效的行程,请你按字符自然排序返回最小的行程组合。例如,行程 [“JFK”, “LGA”] 与 [“JFK”,“LGB”] 相比就更小,排序更靠前 所有的机场都用三个大写字母表示(机场代码)。假定所有机票至少存在一种合理的行程。所有的机原创 2021-04-19 14:38:44 · 147 阅读 · 0 评论 -
回溯算法-启发式的总结
回溯算法的递归结构就是和满树一样的结构,每个节点都和根节点一样,所有的处理都是嵌套的。当存在一些限制条件的时候,这些限制条件将会限制某些子树的扩展。在回溯算法当中,回溯的过程其实就是从子树回到子树的根节点,子树的根节点重复这个过程,最终回到整个树的根节点。在回溯的过程当中,向子树深度遍历的方向和子树根节点同一层的遍历的方向在处理节点item上是一个正反关系的一个过程。向下遍历item可能存在push_back或者标志位设置为true,而同层水平遍历对应存在pop_back和标志位设置为false。.原创 2021-04-15 11:26:16 · 474 阅读 · 0 评论 -
C++ 204. 计数质数-标记数据更新方向解释
204. 计数质数统计所有小于非负整数 n 的质数的数量。示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0提示:0 <= n <= 5 * 106题解:方法一:枚举由于最多有y=x∗y/xy=x*y/xy=x∗y/x,所以xxx的取值范围就在[1,sqrt(y)][1,sqrt(y)][1,sqrt(y)]之间。如果大于sqrt(原创 2020-12-03 14:52:05 · 172 阅读 · 0 评论 -
MIMO信号检测MMSE-SIC基于SINR性能相较于MMSE性能提升分析
论文:《Performance of iterative successive detection algorithm with space-time transmission》《Comparison of ordered successive receivers for space-time transmission》假设系统为接收天线M=2,发射天线N=2假设第一个发射天线发射信号检测正确的概率为...原创 2020-11-28 22:45:01 · 2679 阅读 · 0 评论