leetcode:Bulb Switcher + K…

来源:互联网 发布:阿里云备案网站名称 编辑:程序博客网 时间:2024/06/05 15:17
Bulb Switcher:
给n个灯泡,第i轮关掉每i个灯泡,问n轮之后还剩几个灯泡。
如果用数组模拟肯定要超时,仔细想了想DP也是要超时的。其实这道题就是道数学题,如果第i盏灯亮着,那么必定是个某个k的平方,因为只有这样它才会在第k轮被点亮,又没有对应的i的因子(i/k)来把它灭掉。

Kth Smallest Element in a BST:
搜索二叉排序树中第k小的元素。这道题证明了,基础还是有很多需要复习的。。。
解法其实只要根据二叉排序树的性质,加数据结构的遍历方法,稍微想想就能想到——中序遍历时的第k个元素,即是所求。
另外,尝试使用非递归的中序遍历解题,发现也写的十分艰难,果然基础数据结构的算法还是要好好复习

Combination Sum:
这是一个系列问题,给出一组数字和一个数target,求数组中有多少个组合可以相加成target
第I题就是简单的深搜,我还以为会超时,居然轻松进入速度榜前12%
第2题多了个限制,数组中可能会出现重复数字,但每个数字只能用一次。首先sort一下,再规定重复数组的深搜时,搜完一次就跳过剩下所有的相同数字。
第3题依然是回溯法,略过
第4题则有点特殊,数组中每个数字可以用多次,也区分排列顺序([1,3] 和 [3,1]是不同的答案),求组合成target的所有组合数。这个用回溯妥妥的TLE,所以用DP解决即可,转移方程dp[i]+=dp[i-nums[j]];
阅读全文
0 0
原创粉丝点击