
leetcode前150
seeInfinite
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode32 最长有效括号(hard)
题目 给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度(连续的长度,而不是里面有效括号长度)。 示例1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()" 示例 2: 输入: ")()())" 输出: 4 解释: 最长有效括号子串为 "()()" 思路 难点:主要有3种情况 独立括号:(()()() 嵌套括号:(()) 两者混...原创 2019-09-10 16:23:24 · 210 阅读 · 0 评论 -
leetcode64 最小路径和
题目: 给定一个包含非负整数的 mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 思路: 经典dp,非常简单 class Solution { public...原创 2019-09-17 15:35:29 · 104 阅读 · 0 评论 -
leetcode312 戳气球(hard)
题目 有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组nums中。 现在要求你戳破所有的气球。每当你戳破一个气球 i 时,你可以获得nums[left] * nums[i] * nums[right]个硬币。这里的left和right代表和i相邻的两个气球的序号。注意当你戳破了气球 i 后,气球left和气球right就变成了相邻的...原创 2019-09-18 15:29:47 · 277 阅读 · 0 评论 -
leetcode354 俄罗斯套娃信封问题(二维的最长上升子序列)
给定一些标记了宽度和高度的信封,宽度和高度以整数对形式(w, h)出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。 请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。 说明: 不允许旋转信封。 示例: 输入: envelopes = [[5,4],[6,4],[6,7],[2,3]] 输出...原创 2019-09-18 16:46:07 · 289 阅读 · 0 评论 -
leetcode486 预测赢家(排成一条线的纸牌博弈问题)
思路1:暴力递归法 会超时 #include <iostream> #include <vector> using namespace std; class Solution{ public: // 为先手时 int first(int l,int r,vector<int> &nums){ // 只有一...原创 2019-09-18 20:49:16 · 514 阅读 · 0 评论 -
leetcode31 字典序下一个排列(mid)
题目 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。 1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1 思路 25431 后面为完全逆序,...原创 2019-09-18 21:39:50 · 338 阅读 · 0 评论 -
leetcode85 最大矩形(hard)
题目 给定一个仅包含0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例: 输入: [ ["1","0","1","0","0"], ["1","0","1","1","1"], ["1","1","1","1","1"], ["1","0","0","1","0"] ] 输出: 6 思路1:单调栈 这题还是比较有技巧性的,可以将它转换成...原创 2019-09-19 15:45:27 · 294 阅读 · 0 评论 -
leetcode886. 可能的二分法(hard)(dfs用于染色问题)
给定一组N人(编号为1, 2, ..., N),我们想把每个人分进任意大小的两组。 每个人都可能不喜欢其他人,那么他们不应该属于同一组。 形式上,如果 dislikes[i] = [a, b],表示不允许将编号为 a 和 b 的人归入同一组。 当可以用这种方法将每个人分进两组时,返回 true;否则返回 false。 示例 1: 输入:N = 4, dislikes = [[1,...原创 2019-09-19 21:30:15 · 421 阅读 · 0 评论 -
ip地址与整数互转
1、ip地址转成整数 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成整数。 举例:一个ip地址为10.0.3.193 每段数字相对应的二进制数 1000001010 0 00000000 3 000...原创 2019-09-20 15:31:09 · 1185 阅读 · 0 评论 -
被3整除的子序列(hard)
链接:https://ac.nowcoder.com/acm/problem/21302 来源:牛客网 题目描述 给你一个长度为50的数字串,问你有多少个子序列构成的数字可以被3整除 答案对1e9+7取模 输入描述: 输入一个字符串,由数字构成,长度小于等于50 输出描述: 输出一个整数 示例1 输入 132 输出 3 思路: dp,记录每个位置中,除以3余数是1,...原创 2019-09-20 18:46:12 · 553 阅读 · 0 评论 -
LeetCode504 七进制数
题目 给定一个整数,将其转化为7进制,并以字符串形式输出。 示例 1: 输入: 100 输出: "202" 示例 2: 输入: -7 输出: "-10" 注意: 输入范围是[-1e7, 1e7] 。 思路 参考十进制转二进制:不断的去除,获得的余数逆置 789=1100010101(B) 789/2=394 余1 第10位 394/2=197 余0 第9位 197/2=...原创 2019-09-17 14:18:05 · 331 阅读 · 0 评论 -
leetcode30 串联所有单词的子串(hard)
题目 给定一个字符串s和一些长度相同的单词words。找出 s 中恰好可以由words 中所有单词串联形成的子串的起始位置。 注意子串要与words 中的单词完全匹配,中间不能有其他字符,但不需要考虑words中单词串联的顺序。 示例 1: 输入: s = "barfoothefoobarman", words = ["foo","bar"] 输出:[0,9] 解释:...原创 2019-09-12 22:59:03 · 301 阅读 · 0 评论 -
leetcode17 电话号码的字母组合
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 思路: 用一个队列直接去不断生成即可 class Solution { public: ve...原创 2019-09-11 13:28:46 · 150 阅读 · 0 评论 -
leetcode19 删除链表的倒数第N个节点(边界注意)
题目 给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n保证是有效的。 思路: 注意删除头和尾的情况,这里使用一个虚拟头结点来解决 使用快慢指针,O(n)完成 /...原创 2019-09-11 13:41:43 · 150 阅读 · 0 评论 -
leetcode20 有效的括号(easy)
题目: 给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例2: 输入: "()[]{}" 输出: true 示例3: 输入: "(]" 输出: false 示例...原创 2019-09-11 14:17:15 · 138 阅读 · 0 评论 -
LeetCode22 括号生成(注意一下)
题目: 给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 思路: 这里用递归加上剪枝,我之前的剪枝方法有问题,注意一下剪枝条件,不需要在递归的时候判断,直接在下一层判断状态非法则返回即...原创 2019-09-11 20:13:55 · 175 阅读 · 0 评论 -
leetcode23 合并K个排序链表(频繁考)
题目 合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 思路1:二分递归 经典k路归并,这里采用二分递归 时间复杂度: 归并两个有序数组时间复杂度为O...原创 2019-09-11 22:54:48 · 299 阅读 · 0 评论 -
leetcode24 两两交换链表中的节点
题目 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 思路 头插法,这题很简单 /** * Definition for singly-linked list. * struct ListNod...原创 2019-09-12 14:07:06 · 128 阅读 · 0 评论 -
leetcode25 K 个一组翻转链表
题目 给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。 k是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。 示例 : 给定这个链表:1->2->3->4->5 当k= 2 时,应当返回: 2->1->4->3->5 当k= 3 时,应当返回: 3-...原创 2019-09-12 16:08:48 · 212 阅读 · 0 评论 -
leetcode28 实现 strStr()--KMP算法应用(hard)
题目 实现strStr()函数。 给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。 示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2 示例 2: 输入: haystack = "aaaaa", needl...原创 2019-09-12 19:53:41 · 180 阅读 · 0 评论 -
leetcode29 两数相除(hard,位运算)
题目 给定两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数dividend除以除数divisor得到的商。 示例1: 输入: dividend = 10, divisor = 3 输出: 3 示例2: 输入: dividend = 7, divisor = -3 输出: -2 说明: 被除数和除数均...原创 2019-09-12 21:21:57 · 239 阅读 · 0 评论 -
leetcode124 二叉树中的最大路径和(hard)
给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例 1: 输入: [1,2,3] 1 / \ 2 3 输出: 6 示例2: 输入: [-10,9,20,null,null,15,7] -10 / \ 9 20 / ...原创 2019-09-21 13:54:14 · 226 阅读 · 0 评论