leetcode 几道题目
是周六晚上的几道题,晚上11点半,睡的早,起不来!
494. Target Sum
分析:看完这题,看到数据范围,长度20,枚举就是1<<20 = 1e6, 然后单次20,总共就是2e8,感觉应该是暴力枚举,然后我就按照二进制的方式写了代码,tle了,我感觉应该可以过啊,然后就用dfs写了一下,刚好能过,卡的时间,感觉应该有优化的地方。其实正确的思路是dp,我刚开始感觉也是dp,因为要计算所有的可能,感觉dp也是暴力,算所有可能出现的情况,感觉跟暴力差不多!今天看了下别人的分析,是自己分析错了,http://bookshadow.com/weblog/2017/01/22/leetcode-target-sum/ 我每次都看这个人写的题解,非常棒,更新速度快,思路清晰!然后这道题,因为题目说了,所有数之和不超过1000,那么所有可能出现数的范围就确定了-1000到1000,总共2000, 每次每个数只需要考虑加减这两种情况,所以复杂度是2000 * 20 = 4e4,这个复杂度很小,速度很快!还有注意:这道题因为有些和为负数,所以加上一个偏移来解决。
mycode:
class Solution {
private:
int dp[][];
public:
int findTargetSumWays(vector<int>& nums, int s) {
int pos = ;
memset(dp, , sizeof dp);
dp[][ + pos] = ;
int cur = ;
for (int x : nums) {
for (int i = ; i <= ; i++)
dp[cur][i] = ;
for (int i = ; i <= ; i++) {
if(i + x <= )
dp[cur][i + x] += dp[cur ^ ][i];
if(i - x >= )
dp[cur][i - x] += dp[cur ^ ][i];
}
cur ^= ;
}
s += pos;
if(s < || s > ) return ;
return dp[cur ^ ][s];
}
};
492. Construct the Rectangle
这道题是水题,之前在cf上见过,链接见这里http://codeforces.com/contest/747/problem/A
491. Increasing Subsequences
分析:应该是普通的思路啊,这跟最前的求等差数列的个数的题目差不多吧!我的想法是求出每一个位置的递增子序列,这可以通过寻找前面比他小的元素的子序列加上他自己构成,同时维护结果,最后对结果去重,可以通过排序,unique,erase来做。 刚开始,我对每一个位置都做了unique,erase,结果tle了,去掉这个,只对结果进行unique,erase,然后就过了,也是卡的时间,感觉应该没什么好办法了!
看这个题解http://bookshadow.com/weblog/2017/01/22/leetcode-increasing-subsequences/跟target sum的思路差不多,算出所有的序列,每遇到一个数,就对所有的序列进行遍历,寻找满足要求的答案,这样会不会快呢? 其实跟我上面的思路差不多,这个是每一个需要都要判断,我那个是只对前面的数字,但是添加的时候也要遍历,但是,我没有做去重处理,这里重复的影响又多大,是个问题,需要考虑!首先,一个完全的递增序列的结果有:最长15,一共有32767个, 根据一个完全递增的序列算出来的数字。接下来我不知道怎么分析,是sort, unique, erase,每个元素都是vector,这个比较的单位时间也是比较大的。当然,利用set的去重处理是挺好的方法,很方便。这道题,就这样吧,想到什么再写下来。
484 Find Permutation
看不到题,没做。-0-
好像挺难,需要仔细的分析, 求字典序最小,那就使得只能从前往后考虑,刚开始尽可能的小。(从后面考虑的想法应该是错误的吧)!
如果这题改成求字典序最大的怎么做呢?这是个很好的问题!仔细分析一下,跟上面的思路差不多!
486. Predict the Winner
这个之前刚好看过,详细的分析看这个链接 http://mp.weixin.qq.com/s/rgocsC5P_hYZ0OmH53zCnw,这个好像跟http://bookshadow.com/weblog/2017/01/22/leetcode-predict-the-winner/ 的递推公式不太一样,思考一下。不知道Alpha-Beta搜索这个知识点,学习一下。
483. Smallest Good Base
刚好,这个也做过,是google apactest的原题, 我做的时候直接贴的源代码。
leetcode 几道题目的更多相关文章
- leetcode - 位运算题目汇总(下)
接上文leetcode - 位运算题目汇总(上),继续来切leetcode中Bit Manipulation下的题目. Bitwise AND of Numbers Range 给出一个范围,[m, ...
- C语言超级经典400道题目
C语言超级经典400道题目 1.C语言程序的基本单位是____ A) 程序行 B) 语句 C) 函数 D) 字符.C.1 2.C语言程序的三种基本结构是____构A.顺序结构,选择结构,循环结 B.递 ...
- hdu 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】(转)
HDU 动态规划(46道题目)倾情奉献~ [只提供思路与状态转移方程] Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包 ...
- leetcode top 100 题目汇总
首先表达我对leetcode网站的感谢,与高校的OJ系统相比,leetcode上面的题目更贴近工作的需要,而且支持的语言广泛.对于一些比较困难的题目,可以从讨论区中学习别人的思路,这一点很方便. 经过 ...
- 小白欢乐多——记ssctf的几道题目
小白欢乐多--记ssctf的几道题目 二哥说过来自乌云,回归乌云.Web400来源于此,应当回归于此,有不足的地方欢迎指出. 0x00 Web200 先不急着提web400,让我们先来看看web200 ...
- leetcode tree相关题目总结
leetcode tree相关题目小结 所使用的方法不外乎递归,DFS,BFS. 1. 题100 Same Tree Given two binary trees, write a function ...
- 在 n 道题目中挑选一些使得所有人对题目的掌握情况不超过一半。
Snark and Philip are preparing the problemset for the upcoming pre-qualification round for semi-quar ...
- SQL的几道题目
1.构造数据插入方案表t_project_finish表 a)将addtime更新为当前时间的前一天 首先想到的是addtime=addtime-1,然后就开始验证这个想法. 插入一行数据,包括主键和 ...
- [LeetCode] 二叉树相关题目(不完全)
最近在做LeetCode上面有关二叉树的题目,这篇博客仅用来记录这些题目的代码. 二叉树的题目,一般都是利用递归来解决的,因此这一类题目对理解递归很有帮助. 1.Symmetric Tree(http ...
随机推荐
- CNN结构:SPP-Net为CNNs添加空间尺度卷积-神经元层
前几个CNN检测的框架要求网络的图像输入为固定长宽,而SPP-Net在CNN结构中添加了一个实现图像金字塔功能的卷积层SPP层,用于在网络中实现多尺度卷积,由此对应多尺度输入,以此应对图像的缩放变换和 ...
- 【sqli-labs】 less19 POST - Header Injection - Referer field - Error based (基于头部的Referer POST报错注入)
这个和less18一样,都是基于header的注入 这次的字段是referer Referer: ' AND UpdateXml(1,concat(0x7e,database(),0x7e),1),1 ...
- Luogu P1365 WJMZBMR打osu! / Easy
概率期望专题首杀-- 毒瘤dp 首先根据数据范围推断出复杂度在O(n)左右 但不管怎么想都是n^2-- 晚上躺在床上吃东西的时候(误)想到之前有几道dp题是通过前缀和优化的 而期望的可加性又似乎为此创 ...
- pycharm,右键执行run unittests in xx.py后,__main__:后的代码没执行
如图所示:执行py文件后,打印__name__的名是模块名,而非__main__ 查了好久,发现这个问题跟unittest这个类有关系,执行单元测试的py脚本时,不要右键run unittest,在p ...
- 25-Ubuntu-文件和目录命令-其他命令-重定向
重定向 Linux允许将命令执行结果重定向到一个文件. 将本应显示到终端上的内容输出或追加到指定文件中. 重定向命令 含义 > 表示输出,会覆盖原有文件. >> 表示追加,会将内容追 ...
- Linux基础:find命令总结
本文只总结一些常用的用法,更详细的说明见man find和 info find. find命令 find命令常用来查找文件或目录,可以根据给定的路径和表达式查找所需的文件或目录.该工具是由findut ...
- html第六节课
JavaScript 一.JavaScript简介 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系 ...
- HTML <area> 对象
<area>对象的属性 属性 描述 W3C alt 设置或返回当浏览器无法显示某个区域时的替换文字. Yes coords 设置或返回图像映射中可点击区域的坐标. Yes hash 设置或 ...
- STM32 HAL库的定时器中断回调函数跟串口中断回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { //添加回调后的程序逻辑 if (htim->Instance == ...
- Javascript中的原型继承具体解释
js中的继承,是面向对象的知识,由于js没有类的概念.所以继承是通过对象实现的.谈到继承.就必须说到prototype,就不得不先说下new的过程. 一个小小的列子: <script type= ...