leetcode
LNGOD
寻找一流人才的聚集地
展开
-
leetcode 220. 存在重复元素 III
如果直接用遍历算法,那就是来个二重循环,每一步都计算k次,复杂度为O(N*K),很机械,很愚蠢。用这种傻子都能想到的算法,不配做程序员。 我们略微分析一下上面的傻子算法,在遍历K个范围内的数的时候,如果明显遇到了一个比上一个数还大的数字,我们还计算它干嘛呢?也就是说,这K个数里面,我们只跟离t最近的数求绝对值不就行了吗? 我们只需要用set维护一个长度为k的窗口,什么?谁说窗口只能用双指针维护...原创 2018-07-19 17:31:08 · 3196 阅读 · 2 评论 -
Leetcode 371 求两个数的和
题意为不用+和-,求出a与b的和。 因此用位级运算。 我的思路是新建一个result遍历,将a和b按位求和,求和的方式是二进制加法专用符号:异或。 其中这句话carry=(tmpA&tmpB || tmpB&carry || tmpA&carry);的意思是: 如果tmpA、tmpB、carry中如果有两个以上为1,则进位置为1。class Solution {...原创 2018-08-03 14:31:34 · 224 阅读 · 0 评论 -
435. 无重叠区间
题目 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 解题思路 按照每个节点的end从小到大排序,从第一个开始,将当前点的end和后面一个节点的start比较,如果end<=start那么说明没有重合,将后面一个节点作为当前点,继续向后比较。...原创 2018-08-11 21:17:49 · 705 阅读 · 0 评论 -
leetcode 423. 从英文中重建数字
给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。注意:输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 “abc” 或 “zerone” 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1:输入: “owoztneoer”输出: “012” (zeroonetwo) 示例 2:输入: “f...原创 2018-08-11 15:17:17 · 1285 阅读 · 0 评论 -
leetcode 363. 矩形区域不超过 K 的最大数值和
题目: 给定一个非空二维矩阵 matrix,和一个整数 k,找到这个矩阵中矩形区域不超过 k 的最大数值和。示例:给定 matrix = [ [1, 0, 1], [0, -2, 3] ] k = 2 结果是 2,因为矩形区域 [[0, 1], [-2, 3]] 的数值和是 2,且 2 是不超过 k 的最大数字(k = 2)。这道题是最大矩形面积问题的一个变种,我...原创 2018-08-02 00:21:19 · 2974 阅读 · 4 评论 -
leetcode 365. 水壶问题
题目: 有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水?如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。你允许:装满任意一个水壶 清空任意一个水壶 从一个水壶向另外一个水壶倒水,直到装满或者倒空这道题的解法在于证明Z可以被X和Y的最大公倍数整除,下面是该定理的证明:假设最终体积z = m *...原创 2018-08-01 23:03:28 · 1234 阅读 · 2 评论 -
leetcode 395. 至少有K个重复字符的最长子串
这道题类似于leetcode 394,我用的是递归的思想。 先建立一个辅助容器,unordered_map<char,int>work,用来存储本段字符串的每一个字符的出现次数。然后如果存在work[i]<k,则从i处分割字符串,对分割出来的子字符串进行递归。这么做的原因是如果确定该字符出现的次数小于k,那么最长的满足要求的子串必定不能含有该字符。 另外的就是注意设置好递归的...原创 2018-08-06 18:04:17 · 761 阅读 · 0 评论 -
leetcode 417. 太平洋大西洋水流问题
给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度。“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。规定水流只能按照上、下、左、右四个方向流动,且只能从高到低或者在同等高度上流动。请找出那些水流既可以流动到“太平洋”,又能流动到“大西洋”的陆地单元的坐标。提示:输出坐标的顺序不重要 m 和 n 都小于150一道DFS的变种题,这种题...原创 2018-08-09 17:09:46 · 1669 阅读 · 0 评论 -
390. 消除游戏
1 解题思想 所谓的消除游戏,是指给出一个数字n,对应1..n的序列,然后重复如下流程: 1、选择当前序列的第1,3,5,7…..的所有奇数位置的数字消除,得到新的序列 2、选择当前序列的倒数第1,3,5,7…的所有倒数的奇数位置的数字消除,得到新的序列 3、重复12 直到只剩一个为止这道题首先可以推出一个规律: 1、无论是1还是2,若当前序列长度为k,那么下一轮一定只剩k/...原创 2018-08-04 23:58:02 · 669 阅读 · 0 评论 -
记编程之美的一道经典问题,最长上升子序列问题。
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。这个问题,是我在刷leetcode的时候碰到的,我一回想,在编程之美上遇到过,果断翻开手机的PDF,按上面的方法一步步码出了我的代码。 编程之美的思路分三步: 1.提出最基本的算法 ...原创 2018-07-22 22:48:10 · 793 阅读 · 0 评论 -
leetcode 386. 字典序排数
给定一个整数 n, 返回从 1 到 n 的字典顺序。例如,给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。这道题直观的想法是,建一个vector<int>,和一个vector<string>,int转换到string,排序后...原创 2018-08-03 21:02:54 · 1731 阅读 · 0 评论 -
[leetcode] 375. Guess Number Higher or Lower II 解题报告
题目链接: https://leetcode.com/problems/guess-number-higher-or-lower-ii/We are playing the Guess Game. The game is as follows:I pick a number from 1 to n. You have to guess which number I picked.Eve...原创 2018-08-03 16:50:42 · 119 阅读 · 0 评论 -
leetcode 440. 字典序的第K小数字(精)
题目: 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。注意:1 ≤ k ≤ n ≤ 109。示例 :输入: n: 13 k: 2输出: 10解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。 解题思路: 艰难的一题,从昨晚9点开始脑子就一直在想这道题的做法...原创 2018-08-13 22:30:55 · 9662 阅读 · 1 评论