LeetCode一句话题解
深度优先搜索
人生经验
1. 需要输出所有解、并由于元素集有重复元素,要求返回的结果需要去重的情况,可考虑使用值对应数量的map,然后分别考虑依次取不同数量该值的可能。
LeetCode39
题目:给定一堆数,每个数可以用无限多次,问凑出目标数target的结果集,要求不能重复。
题解:爆搜,设计为dfs(cur, target),cur为当前用第i个数,这个数用0到target / candidates[cur]个。
LeetCode 216
题目:给定数字1到9,从中选 k 个数,返回所有方案,要求方案中不包含相同数字,且答案中不包含相同的方案。
题解:爆搜,从1搜到9,「包含当前数的答案」 和 「不包含当前数答案」的并集组成题解。
LeetCode 22
题目:给定括号数量,输出与之可能的括号序列。
题解:设定条件,不能允许右括号数小于左括号,直接暴搜即可。
LeetCode 52
题目:N皇后问题。
题解:数据范围不大,回溯法即可。
LeetCode 473
题目:给定一堆数,问可否由边长为这些数的的火柴,拼接出正方形。
题解:暴搜 + 减枝,如果这些数不能整除4,则不可能;分别把这个数放到1、2、3、4号边进行搜索,若当前号边超过期望边值,则返回。
动态规划
人生经验
LeetCode 121
题目:股票买卖,只允许一次买卖的情况
题解:
方法1. 建立数组,分别存该点之后的最大价格,然后利用该数组对应点值减该点价格,取最大。
方法2. 动态规划,等于该点之前的最大收益,或者该点减去之前最低价格,这两种情况的最大收益。
LeetCode 122
题目:股票买卖,允许多次买卖。
题解:爬坡法。如果今天价格高于昨天价格,则可以进行一次买卖,即可以爬坡,累加即可。
LeetCode 72
题目:通过增、删、改,使一个字符串变为另一个字符串
题解:与LCS相同,定义dp[i][j]为word1在i位置,word2在j位置时,需要操作的次数。
树
人生经验
1. LeetCode 145
LeetCode 145
题目:用迭代实现二叉树后序遍历
题解:栈,将当前节点左子树依次入栈,如果遍历过了左子树,则将当前节点left置为null以标记,右子树同理。
LeetCode 105
题目:无重复节点,根据先序和中序遍历序列,构建二叉树。
题解:递归,先序序列第一个节点,即使根节点,可根据中序找到左右子数的节点,递归处理。
LeetCode 102
题目:层序遍历二叉树。
题解:采用单队列层序遍历,以NULL作为分隔符。
LeetCode一句话题解的更多相关文章
- Leetcode 简略题解 - 共567题
Leetcode 简略题解 - 共567题 写在开头:我作为一个老实人,一向非常反感骗赞.收智商税两种行为.前几天看到不止两三位用户说自己辛苦写了干货,结果收藏数是点赞数的三倍有余,感觉自己的 ...
- LeetCode OJ 题解
博客搬至blog.csgrandeur.com,cnblogs不再更新. 新的题解会更新在新博客:http://blog.csgrandeur.com/2014/01/15/LeetCode-OJ-S ...
- LeetCode 算法题解 js 版 (001 Two Sum)
LeetCode 算法题解 js 版 (001 Two Sum) 两数之和 https://leetcode.com/problems/two-sum/submissions/ https://lee ...
- leetcode & lintcode 题解
刷题备忘录,for bug-free 招行面试题--求无序数组最长连续序列的长度,这里连续指的是值连续--间隔为1,并不是数值的位置连续 问题: 给出一个未排序的整数数组,找出最长的连续元素序列的长度 ...
- LOJ 一本通一句话题解系列:
第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按 ...
- [leetcode] 位操作题解
子集 题目[78]:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [ ...
- LeetCode 中等题解(3)
34 在排序数组中查找元素的第一个和最后一个位置 Question 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂 ...
- LeetCode 中等题解(1)
16 最接近的三数之和 Question 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和. ...
- noip做题记录+挑战一句话题解?
因为灵巧实在太弱辽不得不做点noip续下命QQAQQQ 2018 积木大赛/铺设道路 傻逼原题? 然后傻逼的我居然检查了半天是不是有陷阱最后花了差不多一个小时才做掉我做过的原题...真的傻逼了我:( ...
随机推荐
- http头部信息
1.常见的返回码 100: 请服务器端继续返回 200:成功 301:永久重定向 存的地址永久的改变了 301 302 : 暂时重定向 302仍然使用老得url 401 : 无法找到资源file n ...
- 名字也挺重要---Webservice
整了几个WebService 方法的返回类型叫GetResponse ,GetDataResponse结果老报错,要加啥元素,加了也报错,后来把Get改成Retrive,运行就正常了,看来Get抢手 ...
- 《Python自动化测试修炼宝典》线上课程已经成功入驻网易云课堂......
<Python自动化测试修炼宝典>线上课程已经成功入驻网易云课堂...... IT测试老兵利用工作之余,亲自录制的<Python自动化测试修炼宝典>线上课程已经成功入驻网易云课 ...
- swoole实现websocket推送
环境配置: swoole 1.9.3.centos6.5(虚拟机).PHP7.01 思路: ①通过server中的collections取出fd ②写一个admin. ...
- opengl教程推荐
非常不错的教程! OpenGL教程
- 8.使用Exists监控ZNode的三大Change事件
一. zookeeper是一个分布式的协调程序(所有程序都是通过订阅它来相互感知) 1. tcp(长链接) + watcher server ->client client ->ser ...
- C#基础入门 十
C#基础入门 十 Windows应用程序的界面设计 Form.cs:窗体文件,一般用于存放程序员为窗体编写的代码: Form.Designer.cs:窗体设计文件,其中的代码是由VS自动生成的,一般不 ...
- 作业 c++编写
1.第一版本程序Prog1:+ 给定一个数组,实现数组元素求和:,具体要求:实现对一维数组(a[100])的所有元素相加运算.+ 数据准备:a)数组长度:100:b)数组数据来源:实验数据A列:1~1 ...
- CentOS 7 IPv6关闭
你可以用两个方法做到这个.方法 1编辑文件/etc/sysctl.conf,vi /etc/sysctl.conf添加下面的行:net.ipv6.conf.all.disable_ipv6 =1net ...
- postgres数据库参数配置说明介绍
访问 1. listen_addresses 监听访问地址 2. port 监听端口 3. max_connections 最大连接数 4. 性能 1. shared_buffers PostgreS ...