是周六晚上的几道题,晚上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的原题, 我做的时候直接贴的源代码。

链接在这里: https://code.google.com/codejam/contest/5264487/dashboard#s=p1,题意一模一样,可能描述有些差别,可以搜一下这个的题解。
 
 

leetcode 几道题目的更多相关文章

  1. leetcode - 位运算题目汇总(下)

    接上文leetcode - 位运算题目汇总(上),继续来切leetcode中Bit Manipulation下的题目. Bitwise AND of Numbers Range 给出一个范围,[m, ...

  2. C语言超级经典400道题目

    C语言超级经典400道题目 1.C语言程序的基本单位是____ A) 程序行 B) 语句 C) 函数 D) 字符.C.1 2.C语言程序的三种基本结构是____构A.顺序结构,选择结构,循环结 B.递 ...

  3. hdu 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】(转)

    HDU 动态规划(46道题目)倾情奉献~ [只提供思路与状态转移方程] Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955      背包 ...

  4. leetcode top 100 题目汇总

    首先表达我对leetcode网站的感谢,与高校的OJ系统相比,leetcode上面的题目更贴近工作的需要,而且支持的语言广泛.对于一些比较困难的题目,可以从讨论区中学习别人的思路,这一点很方便. 经过 ...

  5. 小白欢乐多——记ssctf的几道题目

    小白欢乐多--记ssctf的几道题目 二哥说过来自乌云,回归乌云.Web400来源于此,应当回归于此,有不足的地方欢迎指出. 0x00 Web200 先不急着提web400,让我们先来看看web200 ...

  6. leetcode tree相关题目总结

    leetcode tree相关题目小结 所使用的方法不外乎递归,DFS,BFS. 1. 题100 Same Tree Given two binary trees, write a function ...

  7. 在 n 道题目中挑选一些使得所有人对题目的掌握情况不超过一半。

    Snark and Philip are preparing the problemset for the upcoming pre-qualification round for semi-quar ...

  8. SQL的几道题目

    1.构造数据插入方案表t_project_finish表 a)将addtime更新为当前时间的前一天 首先想到的是addtime=addtime-1,然后就开始验证这个想法. 插入一行数据,包括主键和 ...

  9. [LeetCode] 二叉树相关题目(不完全)

    最近在做LeetCode上面有关二叉树的题目,这篇博客仅用来记录这些题目的代码. 二叉树的题目,一般都是利用递归来解决的,因此这一类题目对理解递归很有帮助. 1.Symmetric Tree(http ...

随机推荐

  1. CNN结构:SPP-Net为CNNs添加空间尺度卷积-神经元层

    前几个CNN检测的框架要求网络的图像输入为固定长宽,而SPP-Net在CNN结构中添加了一个实现图像金字塔功能的卷积层SPP层,用于在网络中实现多尺度卷积,由此对应多尺度输入,以此应对图像的缩放变换和 ...

  2. 【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 ...

  3. Luogu P1365 WJMZBMR打osu! / Easy

    概率期望专题首杀-- 毒瘤dp 首先根据数据范围推断出复杂度在O(n)左右 但不管怎么想都是n^2-- 晚上躺在床上吃东西的时候(误)想到之前有几道dp题是通过前缀和优化的 而期望的可加性又似乎为此创 ...

  4. pycharm,右键执行run unittests in xx.py后,__main__:后的代码没执行

    如图所示:执行py文件后,打印__name__的名是模块名,而非__main__ 查了好久,发现这个问题跟unittest这个类有关系,执行单元测试的py脚本时,不要右键run unittest,在p ...

  5. 25-Ubuntu-文件和目录命令-其他命令-重定向

    重定向 Linux允许将命令执行结果重定向到一个文件. 将本应显示到终端上的内容输出或追加到指定文件中. 重定向命令 含义 > 表示输出,会覆盖原有文件. >> 表示追加,会将内容追 ...

  6. Linux基础:find命令总结

    本文只总结一些常用的用法,更详细的说明见man find和 info find. find命令 find命令常用来查找文件或目录,可以根据给定的路径和表达式查找所需的文件或目录.该工具是由findut ...

  7. html第六节课

    JavaScript 一.JavaScript简介 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系 ...

  8. HTML <area> 对象

    <area>对象的属性 属性 描述 W3C alt 设置或返回当浏览器无法显示某个区域时的替换文字. Yes coords 设置或返回图像映射中可点击区域的坐标. Yes hash 设置或 ...

  9. STM32 HAL库的定时器中断回调函数跟串口中断回调函数

    void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { //添加回调后的程序逻辑 if (htim->Instance == ...

  10. Javascript中的原型继承具体解释

    js中的继承,是面向对象的知识,由于js没有类的概念.所以继承是通过对象实现的.谈到继承.就必须说到prototype,就不得不先说下new的过程. 一个小小的列子: <script type= ...