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 ...
随机推荐
- 新浪某个tab 页模仿
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Django—链接MySQL
Djalgo基础配置方法 静态文件配置方法 1 所有的静态文件都放在 static 文件夹下,例如Bootstrap值类的第三方库,通常 static 文件下会创建 css image js 文件,用 ...
- 13、Next Item Recommendation with Self-Attention---自注意力+CML
一.摘要: 自注意力机制------从用户历史交互中推断出项目-项目关系.学习每个项目的相对权重[用来学习用户的暂时兴趣表示] 二. 模型: 一部分是用于建模用户短期意图的自注意力机制,一部分是建模用 ...
- 04-Linux系统编程-第01天(文件IO、阻塞非阻塞)
03-系统函数 系统编程章节大纲 1 文件I/O 2 文件系统 3 进程 4 进程间通信 5 信号 6 进程间关系 7 守护进程 8 线程 9 线程同步 10 网络基础 11 socket编程 12 ...
- CentOS7.2安装nginx失败
错误提示: Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyu ...
- SpringBoot快速创建HelloWorld项目
废话不多提,拿起键盘,打开 IDEA 就是一通骚操作. 打开 IDEA 后,首页选择 Create New Project,再接着按下图所示,快速搭建SpringBoot项目. 接下来将 Group ...
- orcale 多表连接
多表连接:
- 0120Keeplived实现自动切换Mysql服务
转自http://biancheng.dnbcw.info/mysql/381020.html Keepalived+mysql 自动切换网络结构:VIP 192.168.88.200mysq11 1 ...
- windows上开启winrm服务
原文链接 因为进行远程powershell管理必须需要启用winrm的服务,所以需要在windows平台上启用winrm服务 winrm service 默认都是未启用的状态,先查看状态:如无返回信息 ...
- Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户
Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户 学习了:http://blog.itpub.net/28602568/viewspace-2092858/ ...