![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode by c++
leetcode刷题c++
shwNO1
想要毕业
展开
-
leetcode 739每日温度动态规划
与官方答案不同,对暴力算法进行优化,使用动态规划算法可以得出比用栈算法更为优质的结果。算法参考了官方答案。 分析: 题目要求:vector中某一元素到该元素后比它大的元素的距离。(有些绕就是顺序查找比他大并且离它最近的元素)很自然的想到用动态规划。 思路:在暴力解法中如果想要从后向前遍历到一位置,再从目标位置向后找比它大的元素,是会一个一个比较的直至找到比他大的,动态规划就是使用备忘录,记录以往遍历过的元素离它最近的大于它的元素的距离。这个备忘录就是题目的解。 设置一个备忘录也就是最终的结果,预置大小初始原创 2020-06-11 15:06:21 · 186 阅读 · 0 评论 -
leetcode第七题反转整数
提交代码最主要的问题在于如何避免在32位的整形中不溢出正确的逻辑应该是: 先从整数的最低位开始,对应于结果的最高位。 为避免结果溢出使用了 if(res>INT_MAX / 10) return 0; if(res<INT_MIN / 10) return 0; INT_MAX / 10使用是为了避免出现除了意外的溢出,而32位的整数的10位最大位2所以不需要再对个位情况进行判断。 为了实现这种算法应该构造出除去最低位的整数 所以应该是数字从高位到原创 2020-05-22 17:29:49 · 140 阅读 · 0 评论 -
leetcode第六题z字型对比自己算法和大佬算法
大佬的答案 class Solution { public: string convert(string s, int numRows) { if (numRows == 1) return s; vector<string> rows(min(numRows, int(s.size()))); // 防止s的长度小于行数 int curRow = 0; bool goingDown = false; for (char c : s) { rows[curRow原创 2020-05-10 14:19:44 · 173 阅读 · 0 评论