leetcode第一刷_Restore IP Addresses】的更多相关文章

字符串的问题真是难.一般递归比較好写代码,一般地归还会超时,并且測试用例特别多.. 这道题刚拿到手时直接慌了,这情况也太多了.后来冷静下来想想,事实上还是比較单纯的. 一个ip地址,肯定是四个整数加三个点构成,四个整数要满足什么呢,0~255嘛,还有呢,就是这四个整数必须正好把原来的字符串给用完.一開始忽略掉的一类測试用类是前面有0但实际这个数不是零的情况. 用什么来穷举呢,或者说穷举的对象是什么呢?当然是要插入的三个点的位置,数的有效范围非常小,因此穷举的范围也非常小,1~3个数位而已,代码一…
Restore IP Addresses Given a string containing only digits, restore it by returning all possible valid IP address combinations. For example:Given "25525511135", return ["255.255.11.135", "255.255.111.35"]. (Order does not mat…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetcode.com/problems/restore-ip-addresses/description/ 题目描述 Given a string containing only digits, restore it by returning all possible valid IP address co…
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a string containing only digits, restore it by returning all possible valid IP address combinations. For example: Given "25525511135", return [&qu…
这个题乍一看非常easy,实际上还挺有技巧的.我最開始的想法是找一个特殊值标记.遇到一个0,把他所相应的行列中非零的元素标记成这个特殊值.0值保持不变,然后再从头遍历一次,碰到特殊值就转化成0. 问题是这个特殊值怎么确定,题目中没有把取值范围给出,我怀着侥幸的心理用了最大和最小的int,都被揪了出来..假设找一个不存在于数组中的值,这个复杂度太高了. 有没有其它更好的方法呢?当然有.这个思想非常巧妙,最后的结果是把所有0所在的行列都化成0,换句话说.化成0这个事情仅仅要标记出是哪一行以及哪一列就…
当有反复元素的时候呢? 不用拍脑袋都会想到一种方法,也是全部有反复元素时的通用处理方法,维护一个set,假设这个元素没增加过就增加,增加过了的忽略掉.可是,在这道题上这个通用方法竟然超时了! 怎么办?想一下为什么会这样,如果我们要排列的数字是1111112,当当前的排列中没有1时,取哪个1生成一遍,都是一样的.仅仅有当前面的1都用过了,必须轮到这个1出场的时候,它才会有价值.更明白一点说,如果我们要在生成的排列中放两个1,那么这两个1是原来的哪两个根本无所谓,不断的选,终于的结果肯定一样,可是当…
很自然的推广,假设去掉全然二叉树的条件呢?由于这个条件不是关键,因此不会影响整体的思路.做法依旧是每次找到一层的起点,然后一层一层的走. 假设是全然二叉树的话,每层的起点就是上一层起点的左孩子,兄弟之间的链接也简单,直接找相应父亲的左右孩子就可以. 一般二叉树时,起点应该是上一层第一个有孩子节点的左孩子,或者没有左孩子时.是他的右孩子. 为了能在孩子层中不断链接,我们必须保存当孩子层的前一个节点,当当前层找到一个节点有孩子,就接到这个pre节点后面,然后更新pre节点的指向. class Sol…
看到这个题我就伤心啊,去微软面试的时候,第一个面试官让我做的题目就是实现集合的交操作,这个集合中的元素就像这里的interval一样.是一段一段的.当时写的那叫一个慘不忍睹.最后果然被拒掉了. .好好练习算法,争取正式招聘的时候拒一次微软.哈哈~ 说归说,这道题事实上还是比較简单的.先考虑什么样子的集合是能够合并的.设两段集合是[a, b]和[c, d],不失一般性的,如果a<c,那么有以下几种情况: 1. b<c,这说明两段是全然不相交的,没办法合并. 2. b>=c&&…
题目 Given a string containing only digits, restore it by returning all possible valid IP address combinations. Example: Input: "25525511135" Output: ["255.255.11.135", "255.255.111.35"] 解答 一开始看还挺难的,想了想发现其实就是DFS.索的每一步就相当于从剩下的字符…
八皇后问题应该是回溯法的教学典范.在本科的时候,有一门课叫面向对象.最后的附录有这个问题的源码.当时根本不懂编程,照抄下来,执行一下出了结果都非常开心,哎. 皇后们的限制条件是不能同行同列,也不能同对角线. 那么显然每一列上都要有一个皇后,仅仅须要用一个一维数组记录皇后在每一行上的位置就能够了. 算法的思想是:从第一行開始,尝试把皇后放到某一列上,能够用一个vis数组保存已经有皇后的列,当找到一个还没有皇后的列时,就尝试着把当前皇后放上,然后看看有没有之前放好的皇后跟这个皇后同对角线,假设同对角…